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);
效果圖:
相關文章
- 4,javase程式碼實戰-運算子——左移右移實現乘除(三)Java
- 5,javase程式碼實戰-運算子——位運算實現兩個變數的互換及其他方式(四)Java變數
- 串的基本運算實現-加密解密串加密解密
- 10,javase程式碼實戰-迴圈控制——使用while與自增運算子實現遍歷陣列(一)JavaWhile陣列
- 3,javase程式碼實戰-運算子——更加精確的使用浮點數(二)Java
- MySQL的四種運算子(算術運算子、比較運算子、邏輯運算子和位運算子)MySql
- 位運算與SQL實現SQL
- 位運算子的計算
- 位運算可以實現哪些功能
- 位運算實現加減乘除
- android位運算講解與實戰Android
- 位運算子
- Javascript實現運算子過載JavaScript
- js實現的冪運算程式碼例項JS
- 集合-運算實現
- 算術運算子裡的特殊運算子
- 手寫程式語言-實現運算子過載
- Java位運算子Java
- javascript位運算子JavaScript
- 8.Golang中的運算子-算術運算子、關係運算子、邏輯運算子、賦值運算子Golang賦值
- 從一個加減法運算程式碼理解特殊運算子的過載
- 算數運算子
- Java基礎09:邏輯運算子、位運算子Java
- 實用的位運算應用
- Base64加密解密原理以及程式碼實現加密解密
- 1,javase程式碼實戰——基礎語法(一)Java
- java零基礎自學第一天②,運算子:表示式,算術運算子,+操作,賦值運算子,自增自減運算子,關係運算子,邏輯運算子,三元運算子Java賦值
- Python 位運算子Python
- C++位運算子C++
- javascript基礎(賦值運算子,關係運算子,相等運算子,三元運算子,運算子的優先順序,程式碼塊)(十)JavaScript賦值
- PHP實現摩斯電碼加密解密PHP加密解密
- Python學習-算術運算子,賦值運算子和複合運算子Python賦值
- 運算子 運算子
- SCSS 算術運算子CSS
- Java算術運算子Java
- javaSE練習--運算子和條件結構Java
- 四則運算實現 (轉)
- JavaScript in運算子程式碼例項JavaScript