MD5 反查
编码所有处理都在浏览器本地完成,数据不上传服务器
输入
把文件拖到这里可直接载入
输出
从一个 MD5 摘要倒推出可能的原文。⚠️ 先把话说清楚:MD5 是单向的,不存在「解密」。网上那些「MD5 解密」服务做的事和这里一样 —— 把候选原文一个个算过去,看谁的摘要对得上。所以查出来的从来不是「你的原文」,只是碰巧摘要相同的某个串。本工具的范围是:一份常见密码表、纯数字(最多 5 位)、纯小写字母(最多 4 位)。超出这个范围就查不到 —— 那不是做得不好,而是这类方法的固有上限:真正的「解密站」靠几百 GB 的彩虹表加 GPU 集群,那是服务端的事,而且加盐的哈希无论多大的表都查不出来。这里全部在本机跑,你查的摘要不会离开这台设备。
功能
- 常见密码表(一百多条弱密码统计里最靠前的那些)
- 纯数字穷举到 5 位,纯小写字母穷举到 4 位
- 报出尝试过的候选数 —— 让「查得到/查不到」有个量化概念
- 查不到时如实说明,并解释这是正常结果而非故障
- 摘要长度不对时直接指出(SHA-1 是 40 位、SHA-256 是 64 位)
- 全部本机计算,不上传、不查在线库
使用方法
- 把 32 位十六进制摘要粘贴进输入框(带 `hash:` 之类的前缀也能认)
- 选择搜索范围 —— 默认的常见密码表是瞬时的
- 按 Ctrl/⌘ + Enter 或点「运行」
- 查到与否都会给出说明
常见问题
- 为什么说不是「解密」?
- 因为 MD5 在设计上就是单向的:它把任意长度的输入压成 128 位,这个过程不可逆,数学上不存在反函数。所谓「解密」全都是猜测 —— 拿候选原文算摘要、和手里的比对。所以「解出来」的只是某个摘要相同的串,理论上还可能有无数别的串有同样的摘要(虽然实际中很难构造)。 明白这一点很重要:如果你查的是自己的密码,那说明它在某个泄漏里出现过、且是个弱密码;如果查的是别人的,那和暴力猜没什么区别。
- 为什么我的摘要查不出来?
- 绝大多数情况下是因为密码长过了枚举深度或者混了大小写与符号 —— 这两点都超出了本工具的范围。另有一种情况值得注意:如果那个哈希是加盐的(比如 `md5(password + salt)`),那么任何字典和彩虹表都查不出来,因为盐改变了摘要 —— 这正是加盐的目的。加盐的哈希只能靠知道盐值再重新计算。
- 和那些「MD5 解密网站」有什么区别?
- 覆盖范围差得远,但私密性反过来。那些站点背后是几百 GB 的彩虹表加 GPU 集群,能查出的东西多得多 —— 代价是你必须把哈希发给它(有些还收费)。本工具只在本机跑,不上传、不查库,所以能覆盖的只是弱密码这一档。选哪个取决于你的哈希是不是敏感信息:查自己的弱密码,两个都行;查任何与真实账户相关的东西,本机跑更稳妥。
相关工具
哈希计算
编码算出文本的 MD5、SHA-1、SHA-256 或 SHA-512 摘要,也可算老系统用的 MD4 与 MD2,中文按 UTF-8 字节计算。全部在本地完成。
文件哈希
编码拖入文件即可算出 MD5、SHA-1、SHA-256、SHA-512 与 CRC-32,用来校验下载是否完整、文件有没有被改过。文件不上传,全部在本机计算。
Bcrypt 生成与验证
编码生成 bcrypt 密码哈希($2y$ 前缀)或验证密码与已有哈希是否匹配,成本因子可调,全部在浏览器本地完成。
HMAC 签名
编码用密钥与消息算出 HMAC 签名,含空格与中文的密钥也能与 Node、Java、Python 算出一致结果。密钥只在本机参与运算,不会发出去。
Base64 编解码
编码把文本转成 Base64,或把 Base64 还原成文本,中文与 emoji 都按 UTF-8 正确处理。全部在浏览器本地完成,内容不上传。
URL 编解码
编码把中文、空格与符号转义成 %XX,或把 %XX 还原成文本;整条 URL 与单独的参数值要选对方式,选错不会报错,但链接会打不开。全部在浏览器本地完成。