用于加密和解密的c ++程序

时间:2018-03-05 05:37:10

标签: c++ encryption

当我尝试使用此代码模板并加密由一些空字符组成的块时,其执行被中止。当我使用调试器并查看失败的原因时,我知道当附加空字符时,执行将中止。

任何人都可以建议我使用c ++解决方案成功解密,即使我遇到一个重要且必须解密的空字符。?

1 个答案:

答案 0 :(得分:1)

std::string#size通过查找null字符来确定大小,即字节值为零。你最好使用std::vector或更好的方法来确定大小。

如果要将密文存储为可读(可打印)文本,请使用base 64或hexadecimals等编码。对于存储在二进制文件或二进制流中,只要将输入/输出处理为二进制文件,就不需要这样做。

请注意,ECB模式在大多数情况下都不安全。您需要使用随机IV的CBC,或者如果可能的话,使用经过身份验证的模式,例如GCM,每个密钥具有唯一的IV。