Unix检查mkpasswd对存储在/ etc / shadow中的内容

时间:2017-07-08 09:33:36

标签: unix encryption

我想验证密码(用户标记)。

sudo cat / etc / shadow | grep标记 标记:$ 6 $ $ bvY9mYW3 XdKkg0tluBghADi45V.RG1dTfctvnYdU.5J40nW8bh4UqpxtHp8uF8Zxx8U9mth9w0dvmgtVUrAtydQCvsivA1:16304:0:99999:7 :::

从结果($ 6)我知道密码是使用sha-512加密算法生成的,其中bvY9mYW3为盐。

使用

生成哈希密码时

mkpasswd -m sha-256 -S bvY9mYW3 -s

我得到$ 6 $ bvY9mYW3 $ XdKkg0tluBghADi45V.RG1dTfctvnYdU.5J40nW8bh4UqpxtHp8uF8Zxx8U9mth9w0dvmgtVUrAtydQCvsivA1

几乎相同,但我错过了尾声:16304:0:99999:7 ::: part

我做错了什么?

1 个答案:

答案 0 :(得分:1)

mkpasswd实用程序会根据密码创建哈希,但/etc/shadow不包含哈希密码;它还包含其他信息,包括登录名和密码年龄的详细信息。每一行应该有总共9个以冒号分隔的字段,但有些字段可以留空(通常是)。

例如,16304是自1970年1月1日创建密码(即2014年8月22日)以来的天数,99999表示密码不需要更改99,999天(大约274年),7意味着当您需要更改密码时,您将获得一周的通知。 (虽然到那时你可能已经死了。)

如果你要验证密码,你可以检查前两个字段(名称和密码哈希),但你应该检查其他字段以确保它没有过期。