生成的加密字符串在PyCrypto和Crypto中的大小不同++

2024-10-02 02:43:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近使用了一个Python脚本来加密字符串。但是不能用C++++对C++进行解密。我只是比较了生成的加密字符串,发现它们不一样。有人能帮忙吗?在

下面是我的Python代码:

key  = "0123456789abcdef"
data = "ccccccccccccccccdddddddddddddddd"
iv = "aaaaaaaaaaaaaaaa"
encryptor = AES.new(key, AES.MODE_CBC, iv)
enc = encryptor.encrypt(data)
print enc

这是我的C++代码:

^{pr2}$

Tags: key字符串代码脚本newdatamodeencrypt
1条回答
网友
1楼 · 发布于 2024-10-02 02:43:34

默认情况下,Crypto++对明文字符串使用PKCS5填充。这在字符串的末尾添加填充,以确保字符串是块大小的倍数,对于AES,块大小是16字节。如果明文已经是16的倍数,Crypto++会在明文中再添加16个字节的填充,然后对整个内容进行加密。PyCrypto不添加这个额外的填充,让用户自己来确保正确的块大小。请注意,当您解密Crypto++加密的密码文本时,额外的填充将自动删除。在

相关问题 更多 >

    热门问题