首页/安全/加密与证书速查/Unix 口令散列格式(crypt 前缀)
本包目录(305 条)
加密算法基础95 条
TLS 与 HTTPS60 条证书与 PKI30 条OpenSSL 实战30 条证书运维排查49 条密钥管理41 条

Unix 口令散列格式(crypt 前缀)

类 Unix 系统的 crypt 散列字符串以 $id$ 前缀标识算法:$1$ MD5、$5$ SHA-256、$6$ SHA-512、$y$ yescrypt、$2b$ bcrypt,识别前缀即可判断强度与迁移方向。

加密与证书速查安全更新于 2026-10-12

常见前缀对照

前缀算法备注
$1$MD5-cryptMD5 已不适合安全用途
$5$SHA-256-crypt默认迭代 5000 次,成本偏低
$6$SHA-512-crypt默认迭代 5000 次,成本偏低
$y$yescrypt现代发行版默认(如 Debian 系)
$2b$bcryptcost 决定迭代成本

生成 SHA-512 crypt 散列

生成 SHA-512 crypt 散列
openssl passwd -6 -salt 0011223344556677 'P@ssw0rd'
# 输出形如:$6$0011223344556677$...
mkpasswd -m sha-512 'P@ssw0rd'   # Debian 系 whois 包提供
crypt 格式面向系统账户(/etc/shadow);Web 应用应使用成本更高的 Argon2id/scrypt/bcrypt,而不是直接沿用 $6$。

易错点

  • $5$/$6$ 的 5000 次迭代是本地账户场景的默认值,直接用于 Web 登录会明显偏低
  • 把散列前缀当成「加密等级」看容易误判,实际强度取决于算法与迭代参数

数据来源与参考

  • crypt(5) man 手册
  • glibc 手册(Password and Authentication)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌