通過(guò)異或運(yùn)算符號(hào)與一個(gè)指定的值進(jìn)行異或運(yùn)算,從而改變字符串每個(gè)字符的值,這樣就可以得到加密后的字符串。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import java.util.Scanner; public class Encypt { public static void main(String args[]){ Scanner scan = new Scanner(System.in); System.out.println( "請(qǐng)輸入一個(gè)英文字符串或解密字符串:" ); String password = scan.nextLine(); //獲取用戶(hù)輸入 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.out.println( new String(array)); } } |
輸出結(jié)果:
1
2
3
4
|
請(qǐng)輸入一個(gè)英文字符串或解密字符串: www.sohu.com 加密或解密結(jié)果如下: 乗乗乗與乓乏么乕與乃乏乍 |
總結(jié):
位運(yùn)算可以實(shí)現(xiàn)很多高級(jí),高效的運(yùn)算。比如說(shuō)加密,乘法中的n次方就是右移n位,速度還快。