为什么“ mkpasswd -m sha-512”每次调用都会产生不同的结果?


11

我正在使用此功能在影子文件中创建密码

$ mkpasswd -m sha-512 password
$6$o50n4EfNOBzfs$K5l5AcOI5e0I9n2df0LmR11OLSPKSVM6AGBOnWVfDDfMubb46MrAj0zehdLNEoYzD2fj5q4XUdDwexj/dWLHy/
$ mkpasswd -m sha-512 password
$6$ADmDOhDpW$gsYQuiKPpV1ewaUpRq2VGAvrcocffLQ8XGF94e6LNLZfKIjy6Ku.cZoR/5exeCi1ESjPB9TRM6HxCiY5BCNCV0
$ mkpasswd -m sha-512 password
$6$Efj1agaI$HGkny3q1OTYT4KREh18gueHJae/3Bvil0iOEhfXj8bD.qy9Lg2UIQJMuBcq0XtG3xzueK.7cp0GfKr7tEo5YI/
$ mkpasswd -m sha-512 password
$6$zdVPlCPai4Y$x3CBvlP99xZXZcr4PTiE..YLpZx39h5OHDxqazd9wFLImPuwsXF0M6KmqLzlCCrnQhI2lmEPdCzfmHA/fDiOz.

这让我想知道输出值如何作为密码工作



2
该命令的输出实际上既是盐(随机数)又是密码+盐的哈希值。由于盐是随机的,因此输出将始终是不同的。

Answers:


20

如果使用“ man mkpasswd”检查联机帮助页,则会看到该命令还接受可选参数。-S, --salt=STRING 如果忽略该参数 ,它将使用随机盐值,因此加密的密码值也将不同。

如果提供盐,

mkpasswd -m sha-512 password -s "11223344"
$6$11223344$YzaRt.fnidpXmKw.Dl20htfOrJ8X2Yx3V.h5zUlhlN2SdczempQmQcDcMYd6mHiXlaMqyGt200zDwuZiC8ZZw1

您总是得到相同的结果。

顺便说一句,您可以在输出字符串的开头看到salt值:它是介于$s和8至16个字符之间的值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.