OpenSSL passwd哈希不一致

时间:2013-11-17 02:00:04

标签: hash openssl

我正在尝试使用OpenSSL passwd命令对输入的密码进行哈希处理,并将其与存储的哈希进行比较,但哈希函数不一致。第一次生成的哈希与我比较输入时生成的哈希值不同。请注意每次执行哈希时有3种不同的结果:

caseys-air:~ Casey$ openssl passwd -1 MySecret
$1$AlHYrEQp$.c7UTqHiReGXfmNtXOY/T0
caseys-air:~ Casey$ openssl passwd -1 MySecret
$1$6BPglDOg$8KHb5e7ZryYPfYP0Zm8Ra/
caseys-air:~ Casey$ openssl passwd -1 MySecret
$1$vmQtjpWw$yIi6sZt.3XAP7W3e7hBG11

这里发生了什么?系统时间是否用于创建哈希?如何获得一致的哈希值?

1 个答案:

答案 0 :(得分:13)

每次调用该命令时,它都会生成一个新的盐并使用该盐进行加密。 MD5的格式为$1$<salt>$<data>

要生成用于比较的等效值,必须告诉OpenSSL使用相同的盐。

首先,将现有字符串拆分为$。在第一个字符串中,salt是AlHYrEQp

然后:

openssl passwd -1 -salt AlHYrEQp MySecret

我明白了:

[me@foo ~]$ openssl passwd -1 -salt AlHYrEQp MySecret
$1$AlHYrEQp$.c7UTqHiReGXfmNtXOY/T0