SHA-1 加密SHA-1 Hash
输入文本实时计算 SHA-1 摘要,40 位大小写与 Base64 三种格式逐行复制,UTF-8 中文不乱码,与 sha1sum / openssl / Git 结果一致。核对指纹、排查 Git 对象、调试老系统签名更快。数据全程不上传。
Base64 为 20 字节原始摘要的编码形式(28 字符),与 40 位十六进制内容等价,常见于 LDAP / HTTP Digest 场景。
工具介绍
3 段详细说明SHA-1 计算是面向开发者与普通用户的一站式 SHA-1 摘要工具。输入任意文本,立即得到 160 bit(40 个十六进制字符)标准摘要,并同时给出 40 位大写、Base64 两种常用变体,逐行一键复制,核对内容指纹、调试老系统签名更快。
算法基于 RFC 3174 / FIPS 180-4 纯前端实现,完整兼容 UTF-8,中文、emoji 均按字节正确编码,与 Linux sha1sum、OpenSSL openssl dgst -sha1、Git 对象哈希等主流实现结果完全一致。
所有计算都在浏览器内存中完成,输入内容不上传任何服务器。支持边输入边实时出结果、⌘+↵ 快捷键执行、断网可用,适合核对 Git 对象、复现旧接口签名、生成去重指纹等高频场景。
基础知识 · SHA-1 摘要
RFC 3174 · 160 bitSHA-1(Secure Hash Algorithm 1)是输出 160 位摘要的密码学哈希函数。理解以下 6 个要点,就能正确、安全地使用它:
digest固定 160 位摘要one-way单向不可逆avalanche雪崩效应sha1("abc") 与 sha1("abd") 的结果完全不同且无规律,因此能敏感地发现内容被篡改。shattered碰撞已被实证fips 180-4出处与流程FIPS 180-1(现行为 FIPS 180-4 / RFC 3174)。流程:填充至 512 bit 整数倍 → 按 512 bit 分组 → 4 轮共 80 步压缩 → 级联 5 个 32 位寄存器 H0–H4 得到摘要。salt & slow hash密码存储的正确姿势echo -n "abc" | sha1sum —— Linux 下验证:注意 -n 去掉行尾换行,否则结果不同(多算了一个 \n 字节)。hashlib.sha1(b'abc').hexdigest()、MySQL SELECT SHA1('abc')、OpenSSL echo -n abc | openssl dgst -sha1 均返回 a9993e364706816aba3e25717850c26c9cd0d89d,可互验。SHA-256+ 或慢哈希,不要新建 SHA-1 依赖。使用说明
4 步快速入门使用场景
5 个真实案例旧系统仍以 SHA-1 做参数签名或 HMAC-SHA1,复现拼接规则排查验签失败。
Git 的 blob / commit 早期以 SHA-1 命名,核对内容与对象哈希的对应关系。
对文本生成摘要,对比传输前后是否一致,快速发现内容被篡改或截断。
把长 URL / 长文本压成固定 40 字符 Key,用作缓存索引或重复内容判定。
存量系统仍有 SHA-1 口令字段,比对用户输入摘要与库里字段是否一致。
常见问题
10 个问答SHA-1 是什么?有什么用?
SHA-1(Secure Hash Algorithm 1)是一种输出 160 位(40 个十六进制字符)摘要的哈希算法,由 NSA 设计、1995 年发布于 FIPS 180-1。任意长度输入都会得到固定长度的「指纹」,常用于一致性校验、缓存 Key、老系统签名等场景。
SHA-1 能解密吗?
不能。SHA-1 是单向哈希,数学上不可逆。网上所谓「解密」是拿彩虹表反查常见短字符串,复杂原文(加随机盐)无法还原。本工具只做正向计算。
我的输入会上传到服务器吗?
不会。SHA-1 计算完全在浏览器内存中完成,输入内容不上传任何服务器。可断网使用,关闭网络后再打开仍能正常使用。
SHA-1 和 MD5 什么区别?
主要差异是摘要长度与安全强度:MD5 输出 128 位(32 字符),SHA-1 输出 160 位(40 字符);SHA-1 的碰撞攻击成本更高,但两者都已被实证碰撞,均不可用于新安全场景。本站 MD5 额外提供 16 位短格式,SHA-1 无此变体。
SHA-1 和 SHA-256 怎么选?
新项目一律选 SHA-256 及以上:SHA-1 已被 Google SHAttered(2017)实证碰撞,签名、证书场景自 2016 年起已被浏览器与 CA 体系弃用。SHA-1 只用于兼容存量系统(老签名协议、旧 Git 仓库、历史数据校验)。
结果和 Linux sha1sum / openssl 一致吗?
一致。本工具严格按 RFC 3174 实现,UTF-8 输入下与 sha1sum、openssl dgst -sha1、Python hashlib.sha1、Git 对象哈希等主流实现完全相同,可放心互验。
为什么同样的中文,算出来的 SHA-1 和别人不一样?
大概率是编码不同:本工具按 UTF-8 字节计算,若对方按 GBK / GB2312 编码,同一句话结果不同。中文环境对接老系统时请先确认对方编码。
SHA-1 还安全吗?能用来存密码吗?
作为完整性校验仍在使用,但已被证明存在实用的碰撞攻击(2017 年 SHAttered,成本约 6500 万美元 GPU 时),不建议新系统用它存密码。新项目请用 bcrypt / scrypt / argon2 等慢哈希;已有老系统建议逐步迁移并加盐。
Git 还在用 SHA-1 吗?
经典 Git 仓库的对象名仍是 SHA-1,但 Git 已引入 SHA-256 仓库格式作为过渡,并在碰撞披露后加入了 collision-detecting 加固版 SHA-1(SHA-1DC)。理解旧对象哈希时本工具结果可直接对照。
Base64 格式是什么?哪里会用到?
Base64 是 20 字节原始摘要(而非十六进制字符串)的编码形式,固定 28 字符、以 = 结尾。LDAP、HTTP Digest、部分老框架(如 Django 早期口令字段)使用该格式,与 40 位十六进制内容等价、只是编码不同。
相关工具
编码加密分类数据来源
隐私优先RFC 3174 / FIPS 180-4 纯 TypeScript 实现,零第三方依赖、无 WASM。输入经 TextEncoder 按 UTF-8 编码后逐字节计算,中文 / emoji 不乱码,与 sha1sum、openssl、Git 等主流实现结果一致。