Java通过异或运算实现字符串解密
public class MyStringUtils {// public static String encryptString(String target,Integer factor){
// byte[] bytes = target.getBytes();
// for (int i = 0; i < bytes.length; i++) {
// bytes[i] ^= factor;
// }
//
// return new String(bytes);
// }
//
// public static String decodeString(String target, Integer factor){
// byte[] bytes = target.getBytes();
// for (int i = 0; i < bytes.length; i++) {
// bytes[i] ^= factor;
// }
//
// return new String(bytes);
// }<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> String encryptString(String target,Integer factor){ </span><span style="color: #0000ff;">char</span>[] chars =<span style="color: #000000;"> target.toCharArray(); </span><span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = 0; i < chars.length; i++<span style="color: #000000;">) { chars[i] </span>^=<span style="color: #000000;"> factor; } </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span><span style="color: #000000;"> String(chars); } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span><span style="color: #000000;"> String decodeString(String target, Integer factor){ </span><span style="color: #0000ff;">char</span>[] chars =<span style="color: #000000;"> target.toCharArray(); </span><span style="color: #0000ff;">for</span> (<span style="color: #0000ff;">int</span> i = 0; i < chars.length; i++<span style="color: #000000;">) { chars[i] </span>^=<span style="color: #000000;"> factor; } </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span><span style="color: #000000;"> String(chars); } </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) { String target </span>= "你好啊"<span style="color: #000000;">; </span><span style="color: #0000ff;">int</span> factor = 31<span style="color: #000000;">; String encryptString </span>=<span style="color: #000000;"> encryptString(target, factor); System.out.println(</span>"加密后的字符串为===="+<span style="color: #000000;">encryptString); System.out.println(</span>"解密后的字符串为===="+<span style="color: #000000;">decodeString(encryptString, factor)); }}
输出结果
加密后的字符串为====使奢啕
解密后的字符串为====你好啊
思考:
为什么我把字节数组那段给注释掉了
如果使用字节数组会出现什么问题

浙公网安备 33010602011771号