原始文本
选择加密算法
当前算法信息
MD5是广泛使用的哈希算法,输出128位。
支持多种哈希加密算法:MD4、MD5、SHA1、SHA256、SHA512
重要说明:哈希算法是单向加密,只能加密无法解密。生成的哈希值用于数据校验、密码存储等场景。
MD5是广泛使用的哈希算法,输出128位。
Message Digest 消息摘要算法
工作原理:将任意长度消息分割成512位块,通过非线性函数和模运算进行多轮处理。
Secure Hash Algorithm 安全哈希算法
工作原理:使用Merkle-Damgård结构,通过复杂的位运算、循环移位和非线性函数确保安全性。
将用户密码哈希后存储,验证时比较哈希值而非明文密码
文件传输前后对比哈希值,确保数据未被篡改
比特币等加密货币使用SHA-256构建不可篡改的链式结构
为大文件生成唯一标识符,用于去重和版本控制
MD4是早期的单向哈希算法,输出128位。由于安全性问题,现已不推荐使用,主要用于兼容性需求。
MD5是广泛使用的单向哈希算法,输出128位。虽然已被发现碰撞漏洞,但仍广泛用于文件校验等场景。
SHA1输出160位哈希值,曾是标准算法。由于安全性问题,正逐步被SHA-2系列取代。
SHA256是SHA-2系列的代表,输出256位。具有很高的安全性,被广泛应用于区块链、数字签名等领域。
SHA512提供最高级别的安全性,输出512位。适用于对安全性要求极高的应用场景。
在"原始文本"输入框中输入或粘贴需要加密的文本内容。支持直接输入、文件上传或拖拽文件到输入区域。
根据需求选择合适的哈希算法。推荐使用 SHA256 或 SHA512 获得更高的安全性,MD5 适合快速校验场景。
点击"开始加密"按钮,系统将自动生成对应的哈希值。加密结果会显示在"加密结果"区域。
点击"复制"按钮将哈希值复制到剪贴板,或直接选中文本进行复制。可用于密码存储、数据校验等场景。
A: 不可以。哈希算法是单向加密,只能从原文生成哈希值,无法从哈希值反推出原文。这是哈希算法的核心特性之一。
A: 根据场景选择:密码存储推荐 SHA256 或 SHA512;文件校验可用 MD5 或 SHA256;区块链应用使用 SHA256;对安全性要求极高时选择 SHA512。
A: MD5 输出 128 位(32 字符),计算速度快但安全性较低,已发现碰撞漏洞。SHA256 输出 256 位(64 字符),安全性更高,是目前推荐的标准算法。
A: 不会。哈希算法具有确定性,相同的输入在任何时间、任何环境下都会产生完全相同的哈希值。这是数据校验的基础。
A: 上传文件后生成哈希值,与原始文件的哈希值对比。如果两个哈希值完全相同,说明文件未被篡改;如果不同,则文件可能已损坏或被修改。
A: 仅使用哈希是不够的,建议结合盐值(Salt)和多次哈希(如 bcrypt、argon2)。本工具生成的哈希值可用于学习测试,生产环境请使用专业的密码哈希函数。
// 使用 crypto 模块
const crypto = require('crypto');
// MD5 加密
const md5 = crypto.createHash('md5')
.update('要加密的文本')
.digest('hex');
console.log('MD5:', md5);
// SHA256 加密
const sha256 = crypto.createHash('sha256')
.update('要加密的文本')
.digest('hex');
console.log('SHA256:', sha256);
// SHA512 加密
const sha512 = crypto.createHash('sha512')
.update('要加密的文本')
.digest('hex');
console.log('SHA512:', sha512);
import hashlib
# MD5 加密
md5 = hashlib.md5('要加密的文本'.encode('utf-8')).hexdigest()
print('MD5:', md5)
# SHA256 加密
sha256 = hashlib.sha256('要加密的文本'.encode('utf-8')).hexdigest()
print('SHA256:', sha256)
# SHA512 加密
sha512 = hashlib.sha512('要加密的文本'.encode('utf-8')).hexdigest()
print('SHA512:', sha512)
<?php
// MD5 加密
$md5 = md5('要加密的文本');
echo 'MD5: ' . $md5 . PHP_EOL;
// SHA256 加密
$sha256 = hash('sha256', '要加密的文本');
echo 'SHA256: ' . $sha256 . PHP_EOL;
// SHA512 加密
$sha512 = hash('sha512', '要加密的文本');
echo 'SHA512: ' . $sha512 . PHP_EOL;
?>
import java.security.MessageDigest;
// MD5 加密
MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] md5Bytes = md5.digest("要加密的文本".getBytes());
String md5Hex = bytesToHex(md5Bytes);
System.out.println("MD5: " + md5Hex);
// SHA256 加密
MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
byte[] sha256Bytes = sha256.digest("要加密的文本".getBytes());
String sha256Hex = bytesToHex(sha256Bytes);
System.out.println("SHA256: " + sha256Hex);
// 辅助方法:字节数组转十六进制
private static String bytesToHex(byte[] bytes) {
StringBuilder result = new StringBuilder();
for (byte b : bytes) {
result.append(String.format("%02x", b));
}
return result.toString();
}
使用 SHA256 或 SHA512,并添加随机盐值。生产环境推荐使用 bcrypt、argon2 等专业密码哈希函数。
使用 MD5 或 SHA256 生成文件哈希值,用于验证文件完整性和检测文件是否被篡改。
使用哈希值作为数据的唯一标识符,快速判断数据是否已存在,提高数据库查询效率。
结合非对称加密算法,使用 SHA256 对消息进行哈希,然后使用私钥签名,确保消息的完整性和来源验证。
Git 等版本控制系统使用 SHA1 哈希值作为提交标识,确保每个提交都有唯一的标识符。
避免使用 MD4、MD5 和 SHA1 处理敏感数据。优先选择 SHA256 或 SHA512,并根据安全需求定期更新算法。