PBKDF2哈希生成器
在浏览器中生成和验证PBKDF2-SHA256密码哈希。
使用Web Crypto API的PBKDF2-SHA256。格式:hex_salt:hex_hash
关于此工具
PBKDF2(基于密码的密钥衍生函数2)是一种密码学算法,通过使用随机盐对密码进行数千次或数百万次反复哈希来加强密码,使其极其缓慢且昂贵以抵抗蛮力攻击。与快速且容易受到GPU加速攻击的简单哈希函数不同,PBKDF2是为密码安全而专门设计的:迭代次数可以随着硬件变快而逐年调整,使该算法对未来威胁保持抵抗力。这个基于浏览器的工具让您完全离线地生成和验证PBKDF2-SHA256哈希,而无需将您的密码发送到任何服务器。
要生成哈希,只需输入您的密码,调整迭代次数(值越高越慢但更安全;对于现代系统,100,000是一个稳妥的默认值),选择盐长度(16字节是标准值),然后单击'生成哈希'。该工具生成hex_salt:hex_hash格式的哈希,您可以复制并安全存储。要根据存储的哈希验证密码,请切换到'验证'选项卡,粘贴哈希字符串,输入候选密码,然后单击'验证'—工具会告诉您是否匹配。这对于在应用程序中实现密码验证的开发者、测试密码强度的安全专业人士或任何需要理解密码哈希工作原理的人都非常理想。
您的哈希强度取决于迭代次数:根据2024年的NIST建议,至少需要210,000次迭代,虽然您可能在较旧的系统中看到10,000或50,000次迭代。请记住PBKDF2的强度仅取决于您的密码—使用至少12个字符的混合大小写、数字和符号的密码。另外请注意,PBKDF2在新系统中已在很大程度上被Argon2等更新的算法所取代,但它在现有基础设施中仍然被广泛使用和支持。对于生产环境中的长期密码存储,请考虑查阅OWASP指南并根据硬件发展调整迭代次数。
常见问题
代码实现
import bcrypt
# Hash a password (cost factor 12)
password = "my_secure_password"
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt(rounds=12))
print("Hash:", hashed.decode())
# $2b$12$...
# Verify a password
is_valid = bcrypt.checkpw(password.encode(), hashed)
print("Valid:", is_valid) # True
is_invalid = bcrypt.checkpw(b"wrong_password", hashed)
print("Invalid:", is_invalid) # False
# The salt is embedded in the hash — no need to store it separately
# Always use checkpw() for comparison (constant-time)Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.