SHA1 哈希
免费在线 SHA1 哈希计算工具,输入文本秒出 40 位十六进制哈希值。支持文本和文件 SHA1 计算,本地浏览器处理不泄露。
相关推荐
什么是 SHA1?
SHA1(Secure Hash Algorithm 1)是由美国国家安全局(NSA)设计、NIST 于 1995 年发布的密码散列函数。它接收任意长度输入,产生 160 位(40 字符十六进制)输出。
**典型用途:** ①Git / SVN 提交指纹(commit SHA);②文件完整性校验(历史兼容);③软件分发哈希(已被 SHA256 + 取代);④TLS 1.0 / 1.1 握手(已弃用)。
**安全状态:** 2017 年 Google 和 CWI Amsterdam 公开了首次实际 SHA-1 碰撞攻击(SHAttered),意味着 SHA-1 已不再是抗碰撞算法。重要场景请使用 SHA-256 及以上;非安全场景(Git 历史、文件指纹)可继续使用。
**和 MD5 的对比:** SHA1 比 MD5 安全(更长的输出),但都已经不抗碰撞;MD5 用于文件指纹 / 去重仍 OK,SHA1 在 Git 历史中保留。两者都不应继续用于新安全场景。
适用场景
- Git commit 哈希查询
- SVN 代码版本指纹
- 遗留系统的 SHA1 校验(避免升级迁移)
- 教学 / 学术中演示密码学哈希
- 对老软件进行哈希校验(已发布 MD5 / SHA1)
- 测试客户端 / 服务端 SHA1 一致性
使用方法
- 在文本框输入或粘贴需要计算的内容
- 工具自动计算 SHA1 并展示 40 位十六进制结果
- 可选:拖拽文件计算文件 SHA1
- 点击复制按钮获取哈希值
功能特点
- 文本 SHA1:实时计算(毫秒级)
- 文件 SHA1:分块计算支持大文件
- 本地浏览器处理:内容不上传服务器
- 复制一键:复制哈希值到剪贴板
- 支持中文 / Emoji / 多语言
- 可对比两个 SHA1 哈希值(大小写不敏感)
常见问题
SHA1 安全吗?还可以用吗?
安全敏感场景请用 SHA-256 / SHA-512 及以上。SHA-1 已被 Google 在 2017 年公开碰撞攻击(SHAttered)。但:①Git 历史兼容;②老软件校验;③非敏感文件指纹——这些场景可继续使用。
SHA1 输出长度多少?
SHA1 输出 160 位(bit),用十六进制显示为 40 个字符(每 4 位对应 1 个 hex 字符)。例如:a1b2c3d4e5f6... 共 40 个字符。
SHA1 和 MD5 哪个好?
都不适合新安全场景。SHA1 安全性略优于 MD5(输出更长)。但实际:①文件指纹 / 去重用 MD5(更快);②Git 兼容用 SHA1;③安全场景用 SHA256 +。
SHA1 区分大小写吗?
区分。原文本与全大写文本的 SHA1 完全不同。但哈希值字符串本身可以大小写显示(Linux 习惯小写,Windows 习惯大写),比较时仅比较字符、忽略大小写即可。
能计算文件的 SHA1 吗?
可以。点击「上传文件」按钮或拖拽文件到页面,工具会分块计算文件 SHA1,适合大文件不卡顿。
SHA1 是加密算法吗?
不是。SHA1 是单向哈希函数,理论上无法从哈希值反推原文。「SHA1 加密」是常见的非正式说法。本工具不是加密工具,仅仅是哈希计算。
为什么 Git 仍在用 SHA1?
虽然 SHA1 本身已不抗碰撞,但 Git 用的 SHA1 抗碰撞结构由 Linus Torvalds 特别设计——即使能制造原始碰撞,也无法构造同样前缀的 Git commit 碰撞。所以 Git 当前仍安全。
上传的内容会上传服务器吗?
本工具基于 Web Crypto API 在浏览器内计算,内容不上传服务器。本地处理保护隐私,适合敏感场景。
故障排查
SHA1 输出和工具中显示不一致
请检查:1)是否输入完全相同的文本(含空格、换行、不可见字符);2)原文是否被自动 trim(建议勾选「包含换行」选项);3)编码方式是否一致(UTF-8 / GBK 等)。
SHA1 输出长度不是 40 字符?
SHA1 输出始终是 160 位 = 40 个十六进制字符。如输出更长 / 更短,可能在 Base64 编码中显示。请确认工具使用十六进制显示而非其他编码。
术语表
- SHA1
- 160 位密码散列函数,由 NIST 在 FIPS 180-1 中标准化。已不抗碰撞,但仍是 Git 历史、文件校验的常见选择。
- Hash(散列)
- 任意长度输入映射为固定长度输出的数学函数。本工具的 SHA1 输出 40 字符十六进制。
- 碰撞(Collision)
- 两个不同输入产生相同哈希值。2017 年 Google 公开 SHAttered 攻击证明 SHA1 可构造碰撞。
- FIPS
- Federal Information Processing Standards,美国 NIST 发布的信息处理标准。FIPS 180-1 是 SHA1 标准。
- Hex 编码
- 哈希值通常用十六进制显示,每 4 位二进制对应 1 个十六进制字符。SHA1 输出 160 位二进制 → 40 个十六进制字符。
- Git commit hash
- Git 用 SHA1 标识每次提交(commit)。虽然算法本身已被攻破,Git 仍使用 SHA1 是因为 Linus Torvalds 设计了 SHA1 抗碰撞的结构。
SHA1 与其他哈希算法对比
对比 SHA1 与 MD5 / SHA-2 家族的差异。
| 算法 | 输出 | 发布 | 安全性 |
|---|---|---|---|
MD5 | 128 位 / 32 字符 | 1992 | 弱(2004 攻破) |
SHA-1 | 160 位 / 40 字符 | 1995 | 弱(2017 攻破) |
SHA-256 | 256 位 / 64 字符 | 2001 | 强(推荐) |
SHA-512 | 512 位 / 128 字符 | 2001 | 极强 |
输入长度对 SHA1 速度的影响
SHA1 处理速度与输入数据量成正比。
| 输入大小 | 本地处理时间 | 典型 |
|---|---|---|
10 字符 | < 1 ms | 短字符串 |
1 KB | < 1 ms | 短文本文档 |
100 KB | 1-2 ms | 中等文档 |
10 MB | 30-60 ms | PDF 文件 |
100 MB | 300-600 ms | 视频文件 |
1 GB | 3-6 s | 大文件 |
5 种 SHA1 典型场景
覆盖开发、版本控制、合规、安全。
| 使用场景 | 风险等级 | 核心价值 |
|---|---|---|
| Git commit 哈希 | 低(Git 抗碰撞保护) | 历史兼容 |
| 老软件 SHA1 校验 | 中 | 兼容旧系统 |
| 教学演示 | 无 | 理解哈希原理 |
| 密码哈希 | 高(不应使用) | 应改用 bcrypt / Argon2 |
| API 签名 | 高(不应使用) | 应改用 SHA256 / HMAC-SHA256 |
Authoritative References
- NISTNIST FIPS 180-1 - SHA1 标准
- Google / CWISHAttered - SHA1 首次碰撞
- MDNMDN - SubtleCrypto.digest
- WikipediaWikipedia - SHA-1
- 安全字符串比较
- 二进制编码解码
- 凯撒密码
- 摩尔斯电码
- 十六进制编码解码
- 视频转 Base64
- Base64 转视频
- 图片转 Base64
- Base64 转图片
- 文本转 Base64
- Base64 转文本
- 文件哈希校验
- 文件转 Base64
- Base64 转文件
- 音频转Base64
- Base64转音频
- AES 加密解密
- DES 加密解密
- Base32 编码解码
- Base58 编码解码
- Base64 编码
- Base64 解码
- Base64 比较
- Base64 拆分
- Base64 多行合并
- Base64 格式化
- Base64 格式校验
- Base64 批量编码
- Base64 批量解码
- Base64 清理
- Base64 填充处理
- Base64 长度统计
- Base64 转十六进制
- Base64 DataURL 转换
- Base64-Hex 互转
- Base85 编码解码
- HMAC 生成与验证
- PBKDF2 密钥派生
- MD5 哈希值
- SHA-256 哈希
- SHA1 哈希
- SHA512 哈希
- JWT 解码、验证与生成
- HTML 编码解码
- Unicode 转义
- URL 编码
- URL Safe Base64
- MIME Base64
- Java 代码混淆
- JavaScript 代码混淆
- PHP 混淆
- Python混淆