1. 程式人生 > >簡單加密---位運算

簡單加密---位運算

一、位運算

位運算用來操作整數基本型別中的的單個bit,即二進位制位。

二、位運算型別

1、“與”操作 & :輸入都為1的情況下,才為1,否則為0;
2、“或”操作 | :輸入都為0的情況下,才為0,否則為1;
3、“異或”操作 ^ : a^b = a’b | ab’ (a’表示非a, ~a)
解釋:
當a=1,b=1時,a^b = 0;
當a=1,b=0時,a^b = 1;
當a=0,b=1時,a^b = 1;
當a=0,b=0時,a^b = 0;

三、加密原理

將特定字串轉變為一組bit型陣列,將每一個bit資料和特定bit數值進行異或,產生的陣列轉化為字串,這樣可以起到加密的效果。而解密的操作是,將加密操作重新進行一遍,這樣就還原了之前的字串。這是位運算(異或)的一個重要特性。

四、加密與解密例項

……
Scanner scan = new Scanner(System.in);
String target = scan.nextLine();
char[] arr = target.toCharArray();
for(int i=0;i< arr.length;i++){
arr[i] = (char)(arr[i]^200);
}
加密的字串:arr.toString();
for(int i=0;i< arr.length;i++){
arr[i] = (char)(arr[i]^200);
}
解密的字串:arr.toString();
……