天蓬老师2017-04-17 13:19:51
楼上的意思是一个数和同一个数异或两次结果就是他本身:
std::string str3;
for (int i = 0; i < strCount; i++){
str3.append(1,str2[i]^(key[i%keyCount]));
}
这样str3就和str1一样了。
天蓬老师2017-04-17 13:19:51
异或加密的解密过程就是对加密后的字符串再进行一次异或,也就是说在把 str3 当成 str1 放到你的方法里走一遍即可。
不过也真是神奇,你这个算法把字符串异或后出来的字符串居然还可读,也是够绝。