⌘K 切换工具
ENCODE & DECODE

哈希生成器

从文本生成加密哈希(SHA-1、SHA-256、SHA-384、SHA-512)。

local
hash-gen

MD5 is intentionally omitted (broken; not supported by the Web Crypto API).

§01 关于此工具

概述

密码学哈希把任意长度的输入映射成固定长度的摘要。同一份输入永远得到同一个摘要,而只改动一个字符,得到的摘要就完全不同。也正因为如此,比对摘要就可以判断两份数据是否完全一致。这个工具在你输入的同时用 Web Crypto API(crypto.subtle.digest)并行算出 SHA-1、SHA-256、SHA-384 和 SHA-512 四个摘要。

使用方法

  1. Input 里输入或粘贴文本。
  2. SHA-1SHA-256SHA-384SHA-512 四个字段会自动更新,以十六进制字符串给出。
  3. 从对应的只读字段里复制你需要的那个摘要。

示例

  • hello 的 SHA-256 → 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
  • hello 的 SHA-1 → aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
  • 十六进制下的摘要长度:SHA-1 为 40 个字符,SHA-256 为 64,SHA-384 为 96,SHA-512 为 128。

说明

SHA-1 在安全用途上已被废弃——实际可行的碰撞攻击已经存在,请改用 SHA-256 或 SHA-512。哈希不是加密:它提供的是完整性,不是保密性。对密码来说,绝不要只存一个裸哈希,而要用加盐的慢速 KDF,比如 bcrypt、scrypt 或 Argon2。输入按 UTF-8 字节做哈希,所以这里的结果与命令行上的 echo -n "text" | shasum -a 256 一致。工具没有提供 MD5:它在密码学上已经被攻破,Web Crypto API 也没有实现它。

FAQ
我的输入会发到服务器吗?
不会。哈希用的是浏览器内置的 Web Crypto API(crypto.subtle.digest),完全在浏览器里运行。你的文本既不上传也不保存。
为什么没有 MD5?
MD5 在密码学上已经被攻破,Web Crypto API 也没有实现它,所以这个工具是故意不提供的。做完整性校验或任何跟安全相关的事,请用 SHA-256 或更强的算法。
能把哈希还原成原文吗?
不能。密码学哈希是单向函数。唯一「还原」的办法是不断猜测候选输入、逐个算哈希直到撞上——对强哈希和不可预测的输入来说,这在计算上不可行。