SHA-512 属于 SHA-2 家族,由 NIST 在 FIPS 180-2(现行 FIPS 180-4)中发布,把任意长度的数据压缩成 512 位(64 字节)摘要,通常写成 128 个十六进制字符。下面重点说明JDK 写法。
用 Java 处理 SHA512
下面是 Java 中处理SHA512的常用写法:
MessageDigest.getInstance("SHA-512").digest("abc".getBytes(StandardCharsets.UTF_8));运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
示例
输入:user@example.com
计算结果:
6db185971e8d3b52426ff4a1c1ec499abda4a6d0bd47e4f3843a771203c5a4083abfc3db61a61da548c8fed8c035e779b35016c87589f017064680b83e36f228
说明:对 UTF-8 字节计算 sha512。
注意事项
- 所谓“SHA-512 解密”只是查已有明文的对照表
- echo 默认会加换行,命令行结果常因此和在线工具不一致
- 密码存储不要只用一轮 SHA-512
- 截断使用时应选用规定的 SHA-512/256 等变体,不要随便取前几位当另一种算法
怎么选
一般完整性校验选 SHA-256 即可;需要更长摘要或在 64 位服务器上追求同类算法时可用 SHA-512。密码存储不要直接用 SHA-512,应使用 Argon2、bcrypt、scrypt 并加盐。
SHA-512 输出 512 位,SHA-256 输出 256 位,SHA-1 输出 160 位且已不安全。SHA-512/256 是 SHA-512 截到 256 位并使用不同初始值的变体。哈希不能当加密,也不同于 Base64。
本站的SHA哈希计算器工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【SHA-512 能解密吗?】不能。它是单向哈希,只能对已知明文查表。
【结果有多长?】512 位,即 64 字节,十六进制 128 个字符。
【和 SHA-256 哪个更安全?】两者目前都安全。SHA-512 摘要更长;安全性还取决于用法是否正确。
文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。
标签: 数码开发