java位運(yùn)算加密示例
創(chuàng)建一個(gè)類,通過(guò)位運(yùn)算中的"^"異或運(yùn)算符把字符串與一個(gè)指定的值進(jìn)行異或運(yùn)算,從而改變字符串每個(gè)字符的值,這樣就可以得到一個(gè)加密后的字符串。當(dāng)把加密后的字符串作為程序輸入內(nèi)容,再與那個(gè)指定的值進(jìn)行異或運(yùn)算,實(shí)現(xiàn)把加密后的字符串還原為原有字符串的值。
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("請(qǐng)輸入一個(gè)英文字符串或解密字符串");
String password = scan.nextLine();// 獲取用戶輸入
char[] array = password.toCharArray();// 獲取字符數(shù)組
for (int i = 0; i < array.length; i++) {// 遍歷字符數(shù)組
array[i] = (char) (array[i] ^ 20000);// 對(duì)每個(gè)數(shù)組元素進(jìn)行異或運(yùn)算
}
System.out.println("加密或解密結(jié)果如下:");
System.err.println(new String(array));// 輸出密鑰
}
}
效果如圖所示:


相關(guān)文章
淺談Java代理(jdk靜態(tài)代理、動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理)
下面小編就為大家?guī)?lái)一篇淺談Java代理(jdk靜態(tài)代理、動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01Eclipse中查看android工程代碼出現(xiàn)"android.jar has no source attachment
這篇文章主要介紹了Eclipse中查看android工程代碼出現(xiàn)"android.jar has no source attachment"的解決方案,需要的朋友可以參考下2016-05-05java:無(wú)法訪問(wèn)org.springframework.boot.SpringApplication的解決方法
這篇文章主要給大家介紹了關(guān)于java:無(wú)法訪問(wèn)org.springframework.boot.SpringApplication的解決方法,文中通過(guò)實(shí)例代碼將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01基于Spring AOP proxyTargetClass的行為表現(xiàn)總結(jié)
這篇文章主要介紹了Spring AOP proxyTargetClass的行為表現(xiàn)總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08詳解Spring Cloud Stream使用延遲消息實(shí)現(xiàn)定時(shí)任務(wù)(RabbitMQ)
這篇文章主要介紹了詳解Spring Cloud Stream使用延遲消息實(shí)現(xiàn)定時(shí)任務(wù)(RabbitMQ),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01SpringBoot整合Mybatis注解開(kāi)發(fā)的實(shí)現(xiàn)代碼
這篇文章主要介紹了SpringBoot整合Mybatis注解開(kāi)發(fā)的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11