在线工具集

密码生成与哈希计算完整指南

随机密码该多长?MD5 还安全吗?本指南讲清楚密码学安全随机数、密码强度、哈希函数选型。

📅 更新于 2026-04-28 · ⏱ 约 3 分钟阅读 · → 立即使用 密码生成 & 哈希

本指南讲清楚两个相关但不同的话题:1)如何生成强随机密码,2)哈希函数怎么选。两者都涉及密码学安全随机和编码原理。

强密码的三个维度

  • 长度:12 位起步,重要账号 16+ 位
  • 字符集:大小写 + 数字 + 符号(4 类全勾选最强)
  • 不可预测:用 crypto.getRandomValues,不要 Math.random

本工具默认 16 位 + 大小写 + 数字,可勾选符号与排除易混字符(0/O/l/1)。

密码熵的计算

熵 = log₂(字符集大小^密码长度)

  • 8 位纯数字:log₂(10^8) ≈ 27 bits(弱)
  • 12 位字母数字:log₂(62^12) ≈ 71 bits(中)
  • 16 位含符号:log₂(94^16) ≈ 105 bits(强)

经验法则:60 bits 一般用,80 bits+ 重要账号。

哈希函数选型

  • MD5:1992 年算法,已被破解。仅用于完整性校验,不要用于密码存储
  • SHA-1:2017 年被 Google 破解。同上
  • SHA-256/512:当前安全。文件校验、签名首选
  • bcrypt / Argon2:专门为密码存储设计,慢哈希 + 加盐

关键:网站存用户密码必须用 bcrypt/Argon2,不能用 SHA-256(被彩虹表攻击)。本工具的 SHA 系列适合校验场景。

使用 Web Crypto API

本工具的 SHA 全部走 crypto.subtle.digest(Web Crypto API): - 浏览器原生,性能比纯 JS 快 10-100x - 经过审计,安全可信 - 同样用于 HTTPS 证书验证

MD5 因 Web Crypto 不支持(已被认为不安全),用纯 JS 实现兜底。

密码管理实战

  • 不要重复用密码:每个网站独立
  • 密码管理器:1Password / Bitwarden / iCloud Keychain,自动生成+保存
  • 二步验证:开启 TOTP(Google Authenticator)或硬件密钥(YubiKey)
  • 泄露排查:定期在 haveibeenpwned.com 查询邮箱是否在数据泄露中

常见问题

crypto.getRandomValues 真的安全吗?

是。它使用操作系统的密码学安全随机源,可用于生成密钥、token、密码。

MD5 现在还能用吗?

可用于非安全场景(文件校验完整性、缓存 key 哈希)。**不要**用于密码存储、数字签名、防篡改。

SHA-256 和 SHA-512 哪个好?

一般场景 SHA-256 足够。SHA-512 在 64 位 CPU 上更快但输出更长。