哈希与摘要
在本地计算 MD5 / SHA-1 / SHA-256 / SHA-512。文本直接输入,文件通过 FileReader 读进内存,全程不上传、不联网;浏览器自带 Web Crypto 时优先用它,不可用时自动切到本页自带的纯 JavaScript 实现。
算法
· 等待输入
内容
摘要
输入信息
—- 来源
- —
- 字节数
- —
- 字符数
- —
- 已算算法
- —
- 实现后端
- —
- 耗时
- —
几点说明
- 数据不出浏览器 · 零网络请求 · 可断网可用。
- 文本输入先按 UTF-8 编码成字节再计算,所以中文、emoji 的摘要与其它工具算出来的一致(例如「中文」是 6 字节)。
- 文件通过 FileReader 以 ArrayBuffer 读进内存,不上传服务器;大文件会占用相应内存,几十 MB 以内一般没问题。
- 优先使用浏览器内置的 crypto.subtle.digest(原生实现,通常更快);它不可用时自动切换到本页自带的纯 JavaScript 实现,覆盖 MD5、SHA-1、SHA-256、SHA-512 四种算法全部,功能不会因此缺失。
- MD5 与 SHA-1 早已被证明存在碰撞,不要再用于签名或口令存储;这里保留它们只是为了校验下载完整性、比对旧记录这类用途。要抗碰撞请用 SHA-256 或 SHA-512。
- 摘要本身不是加密:它是单向的,但短口令的摘要可以被穷举反查,所以不要把口令的摘要当作安全凭证保存。
- Base64 输出的是摘要这串二进制本身的编码,不是把十六进制再编码一次 —— 它比 hex 短三分之一。