Hash 生成器/ MD5 · SHA
实时计算 MD5、SHA-1、SHA-256、SHA-512 哈希值,使用浏览器内置 Web Crypto API,纯前端处理。
输入文本
MD5
—
SHA-1
—
SHA-256
—
SHA-512
—
这个工具有帮到你吗?
什么是哈希算法
哈希算法(Hash Algorithm)是一种将任意长度的输入数据转换为固定长度输出的单向函数。常见的哈希算法包括 MD5(128 位)、SHA-1(160 位)、SHA-256(256 位)和 SHA-512(512 位)。哈希具有确定性(相同输入总是得到相同输出)、单向性(无法从哈希值反推原始数据)和雪崩效应(输入微小变化导致输出巨大变化)。
哈希的常见应用场景
密码存储:系统不保存明文密码,而是保存密码的哈希值(通常加盐)。文件完整性校验:下载文件后对比 SHA-256 哈希值确认文件未被篡改。数字签名:对文档哈希值进行签名以验证来源和完整性。数据去重:用哈希值快速判断两份数据是否相同。区块链:比特币使用双重 SHA-256 哈希确保交易不可篡改。
MD5 还能用吗
MD5 已被证明存在碰撞漏洞(不同的输入可以产生相同的哈希值),不应用于安全敏感场景如密码存储或数字签名。但在非安全场景中,MD5 仍然广泛使用,如文件校验和、缓存键生成等。对于需要安全性的场景,建议使用 SHA-256 或更高级别的算法。本工具支持 MD5、SHA-1、SHA-256、SHA-512,方便你按需选择。
代码示例
JavaScript (Web Crypto API)
async function sha256(text) {
const data = new TextEncoder().encode(text);
const hash = await crypto.subtle.digest(
"SHA-256", data
);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, "0"))
.join("");
}
await sha256("hello");
// "2cf24dba5fb0a30e26e83b2ac5b9e29e..."Python (hashlib)
import hashlib
text = "hello".encode("utf-8")
print(hashlib.md5(text).hexdigest())
print(hashlib.sha1(text).hexdigest())
print(hashlib.sha256(text).hexdigest())
print(hashlib.sha512(text).hexdigest())
# File hash
with open("file.txt", "rb") as f:
print(hashlib.sha256(f.read()).hexdigest())Go (crypto)
import (
"crypto/md5"
"crypto/sha256"
"fmt"
)
data := []byte("hello")
md5Hash := md5.Sum(data)
sha256Hash := sha256.Sum256(data)
fmt.Printf("%x\n", md5Hash)
fmt.Printf("%x\n", sha256Hash)Shell
# Linux echo -n "hello" | md5sum echo -n "hello" | sha256sum echo -n "hello" | sha512sum # macOS echo -n "hello" | md5 echo -n "hello" | shasum -a 256 # File sha256sum myfile.zip shasum -a 256 myfile.zip
常见问题
哈希函数是什么?
哈希函数(Hash Function)是将任意长度的输入数据映射为固定长度输出(摘要)的算法。同一输入始终产生相同输出,不同输入几乎不会产生相同输出(抗碰撞性),且从输出无法反推输入(单向性)。
MD5 还安全吗?
MD5 在密码存储和数字签名场景中已不安全,存在已知的碰撞攻击漏洞。但在文件完整性校验、非安全场景的数据指纹等用途中仍被广泛使用。生产环境中密码存储应使用 bcrypt、Argon2 等专用密码哈希算法。
SHA-256 和 SHA-512 有什么区别?
两者都属于 SHA-2 系列,安全性均足够高。SHA-256 输出 32 字节(256 位),SHA-512 输出 64 字节(512 位)。在 64 位系统上 SHA-512 往往更快;在 32 位系统或嵌入式设备上 SHA-256 更快。比特币使用 SHA-256,GitHub 的 commit ID 使用 SHA-1(正在迁移至 SHA-256)。
哈希值一样代表文件内容一样吗?
理论上是的。哈希碰撞(两个不同内容产生相同哈希值)在 SHA-256 和 SHA-512 中概率极低,实际中可视为内容相同。文件下载后校验 MD5/SHA256 即可确认未被篡改或损坏。
如何在 Linux/macOS 终端计算哈希?
Linux: md5sum file.txt / sha256sum file.txt / sha512sum file.txt。macOS: md5 file.txt / shasum -a 256 file.txt / shasum -a 512 file.txt。
我的数据安全吗?
本工具完全在浏览器本地运行(MD5 用纯 JS 实现,SHA 系列使用浏览器内置 Web Crypto API),不向任何服务器发送数据。