编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 哈希加密 / SHA1加密

SHA1加密

计算文本的 SHA1 值。

输入
结果

这个工具能做什么

这个工具做的事很直接:把你粘进来的一段文本按 SHA1 算法算出一个固定长度的摘要值,输出 40 位十六进制字符(也就是 160 位、20 字节)。它解决的痛点是不必本地装 openssl、写脚本或开编译器,随手就能拿到一个字符串的 SHA1 指纹,用来比对、填表单、调接口或者临时验证一段签名对不对。输入无论多长,输出永远是这 40 个字符;哪怕只改动一个空格或大小写,结果也会完全不同。所有计算在浏览器本地完成,文本不会上传到服务器。

原理上,SHA1 是 SHA 家族里的一种密码学哈希函数。它先把输入文本按 UTF-8 编码成字节流,再做填充(末尾补一个 0x80 和若干 0,最后 64 位写入原始比特长度),把数据切成 512 位一块,通过 80 轮的位运算、循环左移和常量加法不断搅动一个 160 位的内部状态,最终输出摘要。它是单向的:从摘要几乎不可能反推原文,也没有哪个工具能把 SHA1 值『解密』还原成明文;同样一段输入永远得到同样一段输出,这个确定性正是它能用来做校验和签名的基础。需要清楚的是,SHA1 早在 2017 年就被 Google 的 SHAttered 实验证明可以人为构造碰撞,密码学意义上已不再安全。

典型场景一是校验一致性:比如你从某个镜像站下载了一个安装包,页面上贴着官方的 SHA1 值,把文件内容或对应字符串算一遍,两个 40 位串逐字符相同就说明没被篡改或传输出错。场景二是对接老接口的签名:不少支付、开放平台的旧版协议要求把参数按约定拼成一个字符串,末尾接上密钥,再取 SHA1(有时结果还要转大写),本工具能让你在写代码前先手算一个期望值,方便和程序输出对拍、排查签名不一致的问题。日常调试时,它也常被用来给一段内容生成一个短小、稳定的指纹当作缓存 key 或去重标识。

有几个点容易踩坑。一是编码:同一段中文用 UTF-8 和 GBK 编码算出的 SHA1 完全不同,本工具统一按 UTF-8 处理,如果对方系统用的是别的编码,结果就对不上。二是别把 SHA1 当加密:它没有密钥、不可逆,『SHA1 加密』只是习惯叫法,本质是摘要,不能拿来保护需要还原的秘密。三是存口令要格外谨慎:裸 SHA1 存密码已经不推荐,容易被彩虹表和 GPU 暴力破解,现代做法应改用加盐的 bcrypt、scrypt 或 Argon2。若只是要更强的完整性校验,也建议换成 SHA-256。此外 SHA1 算的是字符串本身,和 Base64URL 编码是两码事,别混用。

SHA1加密是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“sha1加密”、“sha1在线”、“sha1计算”,说的都是这个。

常见使用场景

使用方法

  1. 把内容粘贴到输入框(生成类工具直接设置选项)。
  2. 按需要选择选项,点操作按钮。
  3. 结果出现在下方,点「复制结果」即可带走。

常见问题

SHA1 加密后能解密还原成原文吗?
不能。SHA1 是单向哈希函数,只能由原文算出摘要,无法从 40 位摘要反推原文。网上所谓『SHA1 解密』其实是拿常见字典或彩虹表反查已知明文,并非真正还原。
为什么结果总是 40 个字符?
SHA1 的输出固定为 160 位,用十六进制表示就是 40 个字符(每个字符代表 4 位)。无论输入是一个字还是一整本书,摘要长度都不变。
同一段文本,别的工具算出来和这里不一样怎么办?
多半是字符编码或换行符不同导致的。本工具按 UTF-8 编码文本,若对方用 GBK,或文本里混入了 CRLF 与 LF 的差异、末尾多了空格,结果就会不同,先统一编码和内容再比对。
SHA1 和 MD5、SHA-256 有什么区别?
MD5 输出 128 位(32 位十六进制),SHA1 是 160 位(40 位),SHA-256 是 256 位(64 位)。位数越长抗碰撞越强。MD5 和 SHA1 都已被攻破,安全场景应优先用 SHA-256。
现在还能用 SHA1 存密码吗?
不推荐。裸 SHA1 无盐、计算快,极易被彩虹表和 GPU 暴力破解。存口令应改用带盐的 bcrypt、scrypt 或 Argon2;SHA1 目前更适合做非安全性的完整性校验或生成指纹。

相关工具

查看全部「哈希加密」工具 →

相关名词解释