SHA1 哈希

输入0 字符 · 0 字节
示例:
All Hashes (side-by-side)
Computed via Web Crypto API
MD5
32 hex
SHA-1
40 hex
SHA-256
64 hex
SHA-384
96 hex
SHA-512
128 hex

免费在线 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 一致性

使用方法

  1. 在文本框输入或粘贴需要计算的内容
  2. 工具自动计算 SHA1 并展示 40 位十六进制结果
  3. 可选:拖拽文件计算文件 SHA1
  4. 点击复制按钮获取哈希值

功能特点

  • 文本 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 家族的差异。

算法输出发布安全性
MD5128 位 / 32 字符1992弱(2004 攻破)
SHA-1160 位 / 40 字符1995弱(2017 攻破)
SHA-256256 位 / 64 字符2001强(推荐)
SHA-512512 位 / 128 字符2001极强

输入长度对 SHA1 速度的影响

SHA1 处理速度与输入数据量成正比。

输入大小本地处理时间典型
10 字符< 1 ms短字符串
1 KB< 1 ms短文本文档
100 KB1-2 ms中等文档
10 MB30-60 msPDF 文件
100 MB300-600 ms视频文件
1 GB3-6 s大文件

5 种 SHA1 典型场景

覆盖开发、版本控制、合规、安全。

使用场景风险等级核心价值
Git commit 哈希低(Git 抗碰撞保护)历史兼容
老软件 SHA1 校验兼容旧系统
教学演示理解哈希原理
密码哈希高(不应使用)应改用 bcrypt / Argon2
API 签名高(不应使用)应改用 SHA256 / HMAC-SHA256

Authoritative References