1、linux 账户密码存储在 /etc/shadow 中
普通用户权限能够查看
保存用户信息,每一行代表一个用户,每一行通过冒号:分为七个部分
用户名
密码,x表示密码保存在/etc/shadow
UID,0代表root
GID,表示所在组
描述信息,依次为Full Name、Room Number、Work Phone、Home Phone和Other
用户主目录
默认shell类型
2、查看 /etc/shadow 中 root 密码部分,实际 root 密码为 123123
[root@cmp39 ~]# cat /etc/shadow
root:$6$xdAjFnpddbyfX578$eC2vmJI51ZfAp8R4eVw2wUU4ktC7o/UJq/f1ORNSuJkG7GhCH.Rvm3UUCobThBD7eDYJCnmcpssnLLAtT7/4o1::0:99999:7:::
...
密码为
6
6
6xdAjFnpddbyfX578$eC2vmJI51ZfAp8R4eVw2wUU4ktC7o/UJq/f1ORNSuJkG7GhCH.Rvm3UUCobThBD7eDYJCnmcpssnLLAtT7/4o1
密码部分格式为
i
d
id
idsalt$encrypted
id表示加密算法,1代表MD5,5代表SHA-256,6代表SHA-512 salt表示密码学中的Salt,系统随机生成 encrypted表示密码的hash
3、计算密码对应的 hash 值
[root@cmp39 ~]# python -c "import crypt, getpass, pwd; \
print(crypt.crypt('123123', '\$6\$xdAjFnpddbyfX578\$'))"
$6$xdAjFnpddbyfX578$eC2vmJI51ZfAp8R4eVw2wUU4ktC7o/UJq/f1ORNSuJkG7GhCH.Rvm3UUCobThBD7eDYJCnmcpssnLLAtT7/4o1
结果和 /etc/passwd 中一致
https://unix.stackexchange.com/questions/52108/how-to-create-sha512-password-hashes-on-command-line
Linux下的密码Hash——加密方式与破解方法的技术整理