2,javase程式碼實戰-運算子——位運算實現加密解密 (一)
問題介紹:
想要對一段字串進行加密,我們可以簡單使用異或運算子實現一個簡單的加密。
問題分析:
異或運算子^,相同二進位制為0,不同二進位制為1。
假設有一個字元”w”,我們使其與一個數100做異或運算,那麼就會改變字元“w”,變化後的字元假設記為“a”,這個過程稱為加密。
我們將“a”在與100做異或運算,那麼就會得到原來的字元“w”,這個過程稱為解密。
原理:a =w^100【加密】; a^100 =w^100^100【解密】 .因為100^100 為 0 ,a^100是w。
/**
* 1,宣告一個字串變數,用於儲存加密字串。
* 2,根據使用者輸出的密碼,並儲存原始的字串,並獲取對應的字元陣列
* 3,使用迴圈進行每個字元與100做異或運算,並儲存到原來的字元陣列中。加密
* 4,使用迴圈進行每個字元與100做異或運算,並儲存到原來的字元陣列中。解密
*
*/
String spsd =null;//加密字串
//輸入密碼
System.out.println("請輸入你的密碼");
Scanner s =new Scanner(System.in);
String psd =s.nextLine();
char []p =psd.toCharArray();
//加密
for(int i=0;i<p.length;i++){
p[i] =(char) (p[i]^100);
}
spsd =String.valueOf(p);
System.out.println("密碼字元:"+psd);
System.out.println("加密後的密碼字元"+spsd);
//解密
for(int i=0;i<p.length;i++){
p[i] =(char) (p[i]^100);
}
spsd =String.valueOf(p);
System.out.println("解密後的密碼字元"+spsd);
效果圖:
相關文章
- 位運算與SQL實現SQL
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- 位運算子的計算
- android位運算講解與實戰Android
- 位運算實現加減乘除
- 位運算子
- Javascript實現運算子過載JavaScript
- 手寫程式語言-實現運算子過載
- 位運算子之---按位取反運算子(簡單易懂)
- 集合-運算實現
- 算術運算子裡的特殊運算子
- Java位運算子Java
- Python 位運算子Python
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- PHP實現摩斯電碼加密解密PHP加密解密
- 算數運算子
- Java基礎09:邏輯運算子、位運算子Java
- Python學習-算術運算子,賦值運算子和複合運算子Python賦值
- 位運算子與其他
- java零基礎自學第一天②,運算子:表示式,算術運算子,+操作,賦值運算子,自增自減運算子,關係運算子,邏輯運算子,三元運算子Java賦值
- JavaScript in運算子程式碼例項JavaScript
- javaSE練習--運算子和條件結構Java
- SCSS 算術運算子CSS
- Java算術運算子Java
- 運算子 運算子
- sobel運算元,matlab實現Matlab
- 二進位制、位運算、位移運算
- JavaScript | 按位或運算子JavaScript
- JavaScript & 按位與運算子JavaScript
- JavaScript ~ 按位非運算子JavaScript
- Go 如何實現 PHP 的密碼加密解密GoPHP密碼加密解密
- app直播原始碼,android AES加密解密實現APP原始碼Android加密解密
- 位運算
- 如何利用~ & ^ | + 及移位運算子來實現 ! 的功能
- 位運算實現整數與位元組陣列轉換陣列
- 運算子的關係,什麼叫一元運算子,二元運算子,三元運算子,運算子優先順序,以及運算子的
- 算術運算子++、--的使用
- Verilog實現加減乘除運算
- 正則實現數學運算