我正在尝试从我的 /etc/shadow 文件验证此哈希密码:
$y$j9T$eia4V8bEUD9QBJAEwilXU.$TLUJexdhrx/q3Nc/YaCrlkVkrxUkimYn3o432pxFr90
我想以这种方式将哈希传递给 mkpasswd 但失败:
$ mkpasswd -m yescrypt secret eia4V8bEUD9QBJAEwilXU.
Wrong salt length: 22 bytes when 0 expected.
$ mkpasswd -m yescrypt secret "$y$j9T$eia4V8bEUD9QBJAEwilXU.$"
crypt: Invalid argument
如何传递散列字符串中的盐或参数?
顺便说一句,我已经找到了一种使用 python 脚本验证密码的方法,如这篇 SO post中所述,所以这意味着我们有足够的信息(参数和盐)来计算哈希值。但我更喜欢用 mkpasswd 来做:
$ python3 -c 'import crypt, os; print(crypt.crypt("secret", "$y$j9T$eia4V8bEUD9QBJAEwilXU.$"))'
$y$j9T$eia4V8bEUD9QBJAEwilXU.$TLUJexdhrx/q3Nc/YaCrlkVkrxUkimYn3o432pxFr90