TapCub 正式上线:统计、分析、客服一个平台免费用

免费工具 MD5 加密 / SHA-256 在线生成(哈希生成器)

粘贴一段文字,同时得到它的 MD5、SHA-1 和 SHA-256。可以先去首尾空格、转小写再算,让手机号、邮箱在不同系统里对得上;也可以每行算一个,批量处理一整列数据。全部在浏览器里计算。

  • MD5、SHA-1、SHA-256
  • 按行批量哈希
  • 本地计算,不上传
生成器

输入文本,生成哈希值

边输入边计算。文本按 UTF-8 编码,每个字符都算数,包括空格和末尾的换行。

手机号、邮箱、接口签名串、一列用户 ID 都行。内容不会上传,也不会写进分享链接。

MD5(128 位,32 个字符)
7945bd83237335e5376ff44d62e4f0ae

适合校验、缓存键、老接口签名,不能用来存密码。

SHA-1(160 位,40 个字符)
ffe1cf3289b18e5aedf4f62e2c1ce2242bbdb0c2

Git 和老系统里还常见,已能人为制造碰撞,安全场景别用。

SHA-256(256 位,64 个字符)
a6942f9771d67f34034d2f1926988ed3fad3bf1b4e7cedb9a31f31398dea43bc

对接标识符、做数据校验时的常用选择。

全部在你的浏览器里计算。这里输入的任何内容都不会上传,TapCub 也不会保存。

版本 v1.0更新于 更新记录

结果怎么看

同一段输入,四种输出

三种算法读的是同一串字节,区别在结果长度,以及能不能扛住有人故意攻击。

MD5

32 个字符的「指纹」。用来发现文件或数据被意外改动、做缓存键都够用;但已经能人为造出两段 MD5 相同的内容,不能拿它保护任何东西。

SHA-1

40 个字符。比 MD5 强,但同样已被证明能造出碰撞。现在主要出现在 Git 提交号和老系统对接里。

SHA-256

64 个字符,属于 SHA-2 家族。两个系统要对同一批手机号、邮箱、用户 ID 做匹配,又不想交换明文时,一般用它。

每行的 SHA-256

勾选「每行单独计算」后,每个非空行各算一个 SHA-256,适合一次处理一整列手机号。上面三个框仍然是整段文本的哈希。

哈希是确定的:同样的字节永远得到同样的结果;改一个字母、多一个空格或换行,整个哈希都会变。所以两边要匹配时,必须先按同一规则规范化。

怎么用

三种常见用法

大多数人需要哈希值,是为了下面这几件事。

  1. 1

    核对一个值

    粘贴字符串,和接口文档、数据库或同事给的哈希对比。对不上时先查空格和换行。

  2. 2

    做接口签名

    很多国内接口要求把参数按规则拼成一串再算 MD5 并转大写。拼好后粘进来,勾选「结果转大写」。

  3. 3

    批量处理一列数据

    每行一个手机号或邮箱,勾选「每行单独计算」,把结果复制到表格或上传文件里。

算法对照

MD5、SHA-1、SHA-256 有什么区别

哈希函数把任意长度的输入变成固定长度的输出,不能倒推,也没有密钥:谁拿同样的输入都得到同样的结果。所以「MD5 加密」其实是个习惯叫法,哈希不是加密,加密是可以用密钥还原的。

  • 哈希单向、没有密钥;加密双向,有密钥能还原
  • 手机号只有 11 位,常见邮箱也能枚举,把候选值逐个算哈希就能对出原文,所以不加盐的哈希谈不上匿名
  • 存密码要用加盐的慢哈希(bcrypt、scrypt、Argon2),不要直接用 MD5 或 SHA-256
  • 本工具按 UTF-8 计算;系统用 GBK 编码时,中文的哈希会和这里不同
MD5、SHA-1、SHA-256 对照
算法输出长度十六进制位数碰撞适合
MD5128 位32已有实用攻击校验、缓存键、老接口签名
SHA-1160 位40已被证明可碰撞Git、老系统
SHA-256256 位64目前没有已知碰撞标识符匹配、数据完整性、签名
例子

同一个手机号,写法不同,哈希全变

把同一个号码按四种样子输入。不做规范化时,多一个空格或换行,哈希就完全不同,两边的数据永远对不上。

同一手机号或邮箱不同写法的 MD5 与 SHA-256
输入规范化MD5SHA-256(64 位中的前 16 位)
13800138000关7945bd83237335e5376ff44d62e4f0aea6942f9771d67f34…
anna@example.com关6b56db1f84a3997b902509d3fbf0a306f7d54c22dda5b178…
Anna@Example.com关3f54a4758be5eeeeb5ac0cb24e8a60221fdc88a445bfd76d…
Anna@Example.com (前后有空格)开6b56db1f84a3997b902509d3fbf0a306f7d54c22dda5b178…

打开规范化后,最后一行和第二行完全一样。两边做匹配(比如给广告平台上传哈希过的手机号、邮箱)时,要用同一套规范化规则;手机号还要统一是否带 +86、有没有空格和横线,具体格式以平台文档为准。

常见错误

哈希对不上,多半错在这里

算法本身不会出错,出错的是输入和对它的期待。

看不见的空格和换行

复制时多带了换行,或在命令行用 echo 没加 -n,哈希就全变了。要比较的是完全相同的字节。

编码不一致

中文在 UTF-8 和 GBK 下是不同的字节,算出的 MD5 也不同。老的 PHP、Java 项目尤其要留意。

用 MD5 存密码

MD5 算得极快,泄露后可以被高速批量猜解,常见密码一猜就中。密码要用 bcrypt、Argon2 这类加盐慢哈希。

以为哈希就是匿名

手机号做了 MD5,拿着原号码的人照样能算出来对上。按《个人信息保护法》这属于去标识化,仍是个人信息。

常见问题

MD5 与哈希常见问题

还有其他问题?

直接和 TapCub 团队聊聊——工作日通常几小时内回复。

MD5 是什么?MD5 是加密吗?

MD5 是一种哈希算法,把任意文本变成 32 个十六进制字符。它没有密钥、不能还原,严格说不是加密,「MD5 加密」只是习惯叫法。需要还原的数据用加密(如 AES),只需要比对的数据用哈希。

MD5 可以解密吗?

不能。哈希结果里没有保存原文。网上的「MD5 解密」是事先把大量常见字符串算好存成表,拿你的哈希去查;常见密码、手机号这类短值容易被查到,随机的长文本查不到。

MD5 32 位和 16 位有什么区别?大写小写一样吗?

32 位是完整结果;16 位是取 32 位结果的第 9 到 24 位,本工具只给 32 位,需要 16 位时自己截取。大小写只是显示不同,A3F1 和 a3f1 是同一个值,按对方要求选即可。

MD5 和 SHA-256 有什么区别,该用哪个?

SHA-256 输出更长(64 个字符),目前没有已知碰撞;MD5 已经能被人为造出碰撞。新的对接优先用 SHA-256;对方接口明确要求 MD5 时(很多老接口签名如此)才用 MD5。

为什么我算出来的和别的工具、代码里的不一样?

几乎都是输入不同:末尾多了换行或空格、大小写不同,或者中文用了 GBK 而不是 UTF-8。先确认两边是完全相同的字节,再比较结果。

密码可以用 MD5 或 SHA-256 存吗?

不建议。这两种算法都很快,数据库泄露后可以高速猜解。存密码用 bcrypt、scrypt 或 Argon2,并给每个用户单独加盐。

手机号做了哈希,还算个人信息吗?

一般仍算。拿着原号码就能重新算出同样的哈希并对上,属于《个人信息保护法》说的去标识化,不是匿名化,存取和保留期限仍要按个人信息管理。这里只是常识说明,不是法律意见。

能用这个工具算文件的 MD5 吗?

不能,这里只算文本。文件请用命令行:macOS 用 md5 文件名 或 shasum -a 256 文件名,Linux 用 md5sum / sha256sum,Windows 用 certutil -hashfile 文件名 MD5。

更新记录

更新记录

这个工具的新功能、修复和数据更新,最新的在前。

  1. · v1.0

    首次上线首次上线。

缺功能或发现错误?告诉我们,常被提到的会排进下次更新。 全部工具更新

下一步

用你自己的 ID 认出每一位用户

传入你的用户 ID(愿意的话先做哈希),TapCub 把不同设备、不同时间的访问归到同一个档案。

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie