使用各种算法生成密码哈希。支持MD5、SHA1、SHA256、SHA512等。
工具功能
- 多种哈希算法: 支持 MD5、SHA1、SHA256、SHA512、bcrypt 等流行哈希算法
- 即时生成: 实时生成密码哈希,立即获得结果
- 安全私密: 所有哈希操作都在浏览器本地执行,确保最高安全性
- 一键复制: 单击即可将生成的哈希复制到剪贴板
使用方法
- 第一步:输入密码: 在输入框中键入或粘贴要哈希的密码
- 第二步:选择算法: 选择您首选的哈希算法(MD5、SHA256、bcrypt 等)
- 第三步:复制哈希: 点击复制按钮将生成的哈希保存到剪贴板
生成原理
密码哈希基础和算法选择
密码哈希使用密码学哈希函数将密码转换为固定长度的字符串,使其不可逆以实现安全存储。该工具支持多种算法:传统哈希(MD5、SHA-1 - 已弃用)、SHA-2家族(SHA-256、SHA-512 - 适合一般使用)以及自适应哈希(bcrypt、scrypt、Argon2 - 推荐用于密码)。每种算法提供不同的安全级别和性能特征。现代密码哈希需要盐值(哈希前添加的随机数据)来防止彩虹表攻击,以及具有可配置工作因子的密钥派生函数(KDF)来抵抗暴力攻击。该工具演示跨算法的哈希生成,比较输出格式,并根据使用场景提供安全建议。
盐值、胡椒和密钥拉伸技术
安全的密码存储需要基本哈希之外的额外保护措施。盐值是在哈希前添加到每个密码的唯一随机数据,防止相同密码产生相同哈希并击败彩虹表攻击。胡椒是添加到所有密码的秘密密钥(与哈希分开存储)提供额外安全层。密钥拉伸迭代应用哈希函数(数千轮)增加攻击者的计算成本。该工具使用密码学安全的随机源实现适当的盐值生成,支持bcrypt/PBKDF2的可配置迭代计数,并演示工作因子对哈希生成时间的影响。高级功能包括盐值长度建议(16+字节)、迭代计数指导(PBKDF2为100,000+)以及哈希速度与攻击抵抗力之间的安全权衡。
安全最佳实践和攻击防护
密码哈希安全涉及多个防御层:永不存储明文密码,使用强哈希算法(推荐bcrypt、Argon2、scrypt),实现适当的盐值管理,选择平衡安全性和性能的适当工作因子。该工具教育常见攻击:彩虹表攻击(被盐值击败)、字典攻击(被密钥拉伸减慢)、时序攻击(通过恒定时间比较防止)以及基于GPU的暴力破解(被像Argon2这样的内存困难函数抵抗)。安全建议包括算法迁移策略(从MD5/SHA-1到现代替代方案)、密码策略执行、安全哈希存储实践以及符合安全标准(OWASP、NIST指南)。高级功能包括哈希强度比较、攻击成本计算以及生产密码系统的实施指导。
常见问题
- 密码存储应该使用哪种哈希算法?
- 对于生产系统中的密码存储,使用自适应算法如 bcrypt、Argon2 或 scrypt - 永远不要使用 MD5 或 SHA-1。这些自适应算法专为密码设计,内置盐值支持和可配置的工作因子,可减缓暴力攻击。OWASP 推荐 Argon2 作为首选(2015年密码哈希竞赛获胜者),其次是 scrypt 和 bcrypt。避免对密码使用快速算法(MD5、SHA-256),因为它们使现代 GPU 能够进行快速暴力攻击。
- 什么是盐值,为什么密码哈希需要它?
- 盐值是在哈希前添加到每个密码的随机数据(通常16+字节)。没有盐值,相同的密码会产生相同的哈希,导致彩虹表攻击(预计算哈希数据库)。盐值确保即使密码相同,每个密码也获得唯一的哈希。盐值应该:密码学随机(使用安全 RNG)、每个密码唯一(从不重用)、与哈希一起存储(不是秘密)以及足够长(128+位)。像 bcrypt 这样的现代算法会自动处理盐值。
- 如何针对存储的哈希验证密码?
- 验证密码的步骤:1) 从数据库检索存储的哈希和盐值,2) 使用相同的算法、盐值和参数对用户提供的密码进行哈希,3) 使用恒定时间比较将新生成的哈希与存储的哈希进行比较(以防止时序攻击)。永远不要解密或反转哈希 - 哈希在设计上是单向的。对于 bcrypt/scrypt/Argon2,使用其内置的验证函数,它们会安全地处理盐值提取和比较。
- 在浏览器中哈希密码是否安全?
- 仅在浏览器(客户端)哈希密码对于身份验证不安全。如果服务器只存储客户端哈希的密码,窃取数据库的攻击者可以直接使用被盗哈希进行身份验证(传递哈希攻击)。最佳实践:在通过 HTTPS 接收密码后,在服务器上使用 bcrypt/Argon2 进行哈希。可选的客户端哈希可以增加纵深防御(防止服务器看到明文),但具有适当盐值和工作因子的服务器端哈希仍然必不可少。始终使用 HTTPS 保护传输中的密码。
相关文档
- NIST - 加密标准 - NIST官方加密标准和指南
- OWASP - 加密存储 - 安全加密存储最佳实践
- MDN - Web Crypto API - 浏览器加密API用于安全操作
- OWASP - 密码存储指南 - 安全密码存储的最佳实践
- RFC 5246 - TLS 协议 - 传输层安全协议规范