用于DES / CBC的PHP脚本/具有PKCS5Padding加密和解密

我想在下面的代码中知道是否添加了PKCS#5填充?如果不是如何添加?

$message = "insert plaintext message here";

$iv  = pack('H*', 'insert hex iv here');
$key = pack('H*', 'insert hex key here');

$enc = mcrypt_encrypt(MCRYPT_DES, $key, $message, MCRYPT_MODE_CBC, $iv);

echo bin2hex($enc);

我还想创建一个PHP代码来解密用DES / CBC / PKCS5Padding创建的字符串.我认为可以修改上面提到的代码以获得解密.

对我来说重要的是获得PKCS#5 Padding和Unpadding脚本.

解决方法:

不,它没有添加.不幸的是,PHP / mcrypt使用零填充,直到消息是块大小的N倍.

要添加PKCS#5填充,请使用以下公式:

p = b - l % b

其中l是消息长度,b是块大小,%是余数操作.然后在执行加密之前将值p的p个字节添加到末尾.

上一篇:php – 加密用户数据以自动登录到第三方系统


下一篇:java android URL加密