一、实例说明
本实例通过位运算的异或运算符 “ ^ ” 把字符串与一个指定的值进行异或运算,从而改变每个字符串中字符的值,这样就可以得到一个加密后的字符串。当把加密后的字符串作为程序输入内容,异或运算会把加密后的字符串还原为原有字符串的值。效果图如下:
二、实现过程
1 package com.itxxz; 2 3 import java.util.Scanner; 4 5 /** 6 * java加密解密算法 7 * 8 * @author 螃蟹 9 * 网站:IT学习者 10 * 网址:http://itxxz.com 11 * 12 */ 13 public class Demo { 14 15 public static void main(String[] args){ 16 Scanner scan = new Scanner(System.in); 17 boolean flag = true; 18 String msg = ""; 19 while(true){ 20 if(flag){ 21 msg = "加密"; 22 flag = false; 23 }else{ 24 msg = "解密"; 25 flag = true; 26 } 27 System.out.println("请输入需要"+msg+"的字符串:"); 28 String password = scan.nextLine(); 29 char[] array = password.toCharArray(); 30 for(int i = 0;i<array.length;i++){ 31 array[i] = (char)(array[i]^20000); 32 } 33 System.out.println(msg+"结果如下:"); 34 System.out.println(new String(array)); 35 } 36 37 } 38 }
三、要点说明
本实例的关键技术是异或运算。如果某个字符(或数值)x与一个数值m进行异或运算得到y,则在用y与m进行异或运算就可以还原为x,因此应用这个原理可以实现加密和解密功能。
转自:http://itxxz.com/a/javashili/2014/0625/112.html