OpenSSL passwd哈希不一致

Cas*_*ock 8 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
Run Code Online (Sandbox Code Playgroud)

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

Joe*_*Joe 14

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

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

首先,将现有字符串拆分为$.在你的第一个字符串中,盐是AlHYrEQp.

然后:

openssl passwd -1 -salt AlHYrEQp MySecret
Run Code Online (Sandbox Code Playgroud)

我明白了:

[me@foo ~]$ openssl passwd -1 -salt AlHYrEQp MySecret
$1$AlHYrEQp$.c7UTqHiReGXfmNtXOY/T0
Run Code Online (Sandbox Code Playgroud)