文本哈希(MD5 / SHA-1 / SHA-256)
用纯 JS 真实计算 MD5、SHA-1、SHA-256 十六进制摘要,输入按 UTF-8。固定向量在测试中同时与 node:crypto 与字面量比对;浏览器与 Node 共用同一份代码。
输入与参数
input— 待哈希文本(UTF-8)algorithm— 算法
真实示例
algorithm=sha256, input=abc
→ ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad (md5=900150983cd24fb0d6963f7d28e17f72;空串 sha256=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855)
限制与失败处理
仅字符串输入,不做文件分块、HMAC、加盐或口令派生,不调用 WebCrypto(纯 JS 实现,浏览器未实测)。MD5/SHA-1 仅作旧数据兼容校验。输入上限 1 MiB;大文本在本轮未拆分到 Worker。
FAQ
可以用来存口令吗?
不可以。这些是快速通用摘要,不是口令 KDF;MD5/SHA-1 已不抗碰撞。请改用服务端 Argon2/bcrypt/scrypt 与加盐。
中文与 emoji 怎么处理?
统一按 UTF-8 字节计算;例如 sha256("你好 🚀") = 8ac2455b3ecb54ac6ba1ecec447ec766a5ba4e88506f179e5f63383cc28b3616。