哈希工具
什么是哈希算法?
哈希算法是一种将任意长度的输入数据转换为固定长度输出的数学函数。它具有单向性(不可逆)、确定性(相同输入产生相同输出)和雪崩效应(输入微小变化导致输出巨大变化)等特点。
支持的算法
MD5
输出长度: 128 位 (32 十六进制字符)
安全性: 已被破解,不推荐用于安全场景
使用场景: 文件校验、数据去重(非安全场景)
SHA-1
输出长度: 160 位 (40 十六进制字符)
安全性: 已被破解,不推荐用于新项目
使用场景: Git版本控制、旧系统兼容
SHA-224
输出长度: 224 位 (56 十六进制字符)
安全性: 安全性较好,但使用较少
使用场景: 特定协议要求、嵌入式系统
SHA-256
输出长度: 256 位 (64 十六进制字符)
安全性: 目前安全,广泛使用
使用场景: 密码存储、数字签名、区块链
SHA-384
输出长度: 384 位 (96 十六进制字符)
安全性: 高安全性,性能较好
使用场景: 高安全要求场景、SSL/TLS
SHA-512
输出长度: 512 位 (128 十六进制字符)
安全性: 最高安全性,适合高要求场景
使用场景: 高安全要求的密码存储、数字证书
SHA-3
输出长度: 256 位 (64 十六进制字符)
安全性: 最新标准,抗量子计算攻击
使用场景: 未来安全标准、高级加密应用
RIPEMD-160
输出长度: 160 位 (40 十六进制字符)
安全性: 安全性良好,但使用较少
使用场景: 比特币地址生成、特定加密应用
SM3
输出长度: 256 位 (64 十六进制字符)
安全性: 国产密码算法,符合国密标准
使用场景: 国密应用、政府系统、金融系统
常见使用场景
数据完整性验证
验证数据在传输或存储过程中是否被篡改
密码存储
安全地存储用户密码(需配合盐值)
数字签名
验证数据来源和完整性
文件校验
验证下载文件的完整性和真实性
区块链
工作量证明、交易验证等
缓存键值
生成唯一的缓存键值
安全注意事项
抗碰撞性
MD5和SHA-1已被证明存在碰撞漏洞,不应用于安全敏感场景
盐值使用
存储密码时应使用随机盐值防止彩虹表攻击
算法选择
新项目建议使用SHA-256或更强的算法