Java小案例——对字符串进行加密解密
要求:
* 对用户输入的每个字符的值进行加密,将解密后的字符串输出
* 对用户输入的已加密字符串进行解密并输出
实现代码:
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。