字符串XOR加密测试
【代码】
package com.hy.lab.code; /** * 字符串XOR加密测试 */ public class XorProcess { // 得到一定长度的随机字符串 private static String getRndString(int size){ char[] arr=new char[size]; for(int i=0;i<size;i++){ arr[i]=(char)rnd(32,126); } return String.valueOf(arr); } // 得到某区间内随机数 private static int rnd(int min,int max) { return (int)(min+Math.random()*(max-min+1)); } private static void process(String original){ int n=original.length(); String key=getRndString(n);// 密钥字串 byte[] arr1=original.getBytes(); byte[] arr2=key.getBytes(); int length=arr1.length; byte[] arr3=new byte[length]; for(int i=0;i<length;i++){ arr3[i]=(byte)(arr1[i] ^ arr2[i]); } String enStr=new String(arr3); byte[] arr4=new byte[length]; for(int i=0;i<length;i++){ arr4[i]=(byte)(arr3[i] ^ arr2[i]); } String deStr=new String(arr4); String msg=String.format("原文=%s 密文=%s 译文=%s",original,enStr,deStr); System.out.println(msg); } public static void main(String[] args){ String[] arr=new String[]{"abc","1234567","dsadsadsads2321"}; for(int i=0;i<arr.length;i++){ process(arr[i]); } } }
【输出】
原文=abc 密文=<EZ 译文=abc
原文=1234567 密文=YphArPa 译文=1234567
原文=dsadsadsads2321 密文=:N
[x@ 译文=dsadsadsads2321
END
浙公网安备 33010602011771号