通过异或运算符号与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到加密后的字符串。
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( "请输入一个英文字符串或解密字符串:" ); String password = scan.nextLine(); //获取用户输入 char [] array = password.toCharArray(); //获取字符数组 for ( int i= 0 ;i<array.length;i++) //遍历字符数组 { array[i]=( char )(array[i]^ 20000 ); //对每个数组元素进行异或运算 } System.out.println( "加密或解密结果如下:" ); System.out.println( new String(array)); } } |
输出结果:
1
2
3
4
|
请输入一个英文字符串或解密字符串: www.sohu.com 加密或解密结果如下: 乗乗乗与乓乏么乕与乃乏乍 |
总结:
位运算可以实现很多高级,高效的运算。比如说加密,乘法中的n次方就是右移n位,速度还快。