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