不能直接对std::String整体异或,因单字节密钥易被频次分析破解,且含 时会导致C函数截断;应使用循环密钥流逐字节异或,确保unsigned char层面操作,加密解密函数相同。
std::string
很多人一上来就写 for (auto& c : s) c ^= key;,看似简洁,但隐患很大:密钥 key 是单字节时,所有字符用同一个值异或,属于“凯撒式异或”,极易被频次分析破解;更严重的是,如果字符串含
for (auto& c : s) c ^= key;
key