使用三重 DES 解密数据会在原始文本末尾添加“”


Decrypting Data using Triple DES adds "" at the end of the original text

>我正在使用Triple DES算法使用PHP加密数据。然后,我使用 C# Windows 窗体应用程序对其进行解密。

对于一些数据,当我解密它时,我发现'0'0'0'0'0'0'0'0在 PHP 中加密的原始文本的末尾。可能是什么原因造成的?

加密算法要求数据是一定字节数的倍数。如果数据长度不正确,则会添加空字符来填充数据。这是您在解密后看到的内容。这是意料之中的,您只需要剥离它们。

mcrypt_encrypt默认使用零填充的糟糕选择。请改用 PKCS7 填充,如mcrypt_encrypt页面上的用户注释中所述。