要求:
* 對用戶輸入的每個字符的值進行加密,將解密后的字符串輸出
* 對用戶輸入的已加密字符串進行解密並輸出
實現代碼:
import java.util.Scanner; /** * 要求: * 1.對用戶輸入的每個字符的值進行加密,將解密后的字符串輸出 * 2.對用戶輸入的已加密字符串進行解密並輸出 * @author Administration * */ public class Encryption { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("請輸入一個英文字符串或揭秘字符串"); //獲取用戶輸入 String password = input.nextLine(); //講獲取的字符串轉成字符數組 char[] c = password.toCharArray(); //使用for循環給字符數組加密 for(int i=0;i<c.length;i++){ c[i] = (char)(c[i]^20000); } //輸出加密或者解密結果 System.out.println("加密或者解密之后的結果如下:"); System.out.println(new String(c)); } }
運行結果:
*加密過程:
請輸入一個英文字符串或揭秘字符串:
I Love You
加密或者解密之后的結果如下:
乩一乬乏乖久一乹乏乕
*解密過程:
請輸入一個英文字符串或揭秘字符串:
乩一乬乏乖久一乹乏乕
加密或者解密之后的結果如下:
I Love You
原理解析:
本例的關鍵技術是異或運算。
原理:如果一個字符(或數值)A與一個數值B進行異或運算得到C,則再用C和B進行以后運算就可以還原得到A。