0

我有一堆 MD5 散列密码,我想将其转换为 crypt 风格的 MD5。

如果我有明文,我可以轻松地创建两者:

% echo -n 'testpass' | md5sum
179ad45c6ce2cb97cf1029e212046e81 -

% echo -n 'testpass' | openssl passwd -1 -stdin -salt ''
$1$$JN/baUhJCUwYKagp48tsP0

但是我如何转换179ad45c6ce2cb97cf1029e212046e81JN/baUhJCUwYKagp48tsP0

4

2 回答 2

2

第一个字符串是十六进制,第二个字符串是 base64。

MD5 散列是一个 128 位数字。它可以选择打印的方式可以是十六进制字符串或 base64 编码字符串——两者都只是 128 位数字的表示。

但是ms5sumopenssl passwd不会将密码哈希加密为相同的 128 哈希值,因此相同的密码不会产生相同的 128 位数字,因此在您的示例中,一个密码哈希不会转换为另一个

于 2011-10-01T14:29:26.693 回答
1

您说您有一些 MD5 散列密码要转换为“crypt-style”MD5。如果是这种情况,那么您可能希望生成一个可用于验证 Apache 用户的文件。不幸的是,您可能无法从普通的 MD5 哈希值中执行此操作。

Apache 的 MD5-Crypt 哈希算法不仅仅是密码的 MD5 和。-1 变体也不是。两者在不包括盐的输入密码上附加或以其他方式修改以给出生成的哈希值。如果您确实使用您描述的将字符串管道传输到 md5sum 的方法获得了 MD5 哈希值,则生成的哈希无法反转为任何您可以哈希到 htpasswd 兼容哈希的任何内容。

对不起

于 2012-03-07T22:57:28.710 回答