4

https://www.tools4noobs.com/online_tools/encrypt/给出“a67a318c98a0307502ba81caade2f3a9”作为密钥“1234567890abcdef”和有效负载“加密”的 DES ECB 结果。

PHP 代码

echo bin2hex(mcrypt_encrypt(
    MCRYPT_DES,
    hex2bin("1234567890abcdef"),
    "encrypt this",
    MCRYPT_MODE_ECB)) . "\n";

打印出“1a29ee87f2ad67644ff28450c676a664”。

代码有什么问题?

4

1 回答 1

3

noobs4tools网站删除了该功能hex2bin并将密钥长度截断为 8 个字符(如 Yoshi 在评论中所述)。

12345678与网站的输出和PHP代码的keysize是一致的。

DES 密钥大小在手册中说明为 56 位。阅读下面有关 DES 特定密钥大小的一些有用背景。

我应该如何创建我的 DES 密钥?为什么 7 个字符的字符串不够用?

noobs4tools网站使用的密钥:

"12345678"

您的代码使用的密钥:

 hex2bin("1234567890abcdef"); // 4Vx����

然后,这种差异会为您提供不同的输出。

因此,该网站不会将密钥转换为任何其他数字或数据形式。它希望您在页面脚本中提供格式正确的值。

于 2016-10-13T08:43:49.623 回答