我知道有很多类似的主题,但仍然......有人能为我提供生成MD5字符串的方法的工作示例.
我正在使用MessageDigest,我正在执行以下操作来获取字符串
sun.misc.BASE64Encoder().encode(messageDigest.digest())
Run Code Online (Sandbox Code Playgroud)
我想有更好的方法可以做到这一点.
提前致谢!
Boz*_*zho 16
我会使用commons-codec
Base64.encodeBase64(digestBytes)Hex.encodeHex(digestBytes)Jig*_*shi 12
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] arr = md.digest(bytesOfMessage);
return Base64.getEncoder().encodeToString(arr);
Run Code Online (Sandbox Code Playgroud)
注意:md5不再被认为是好的哈希算法,考虑选择SHA
// Convert to hex string
StringBuffer sb = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
if ((0xff & messageDigest[i]) < 0x10) {
sb.append('0');
}
sb.append(Integer.toHexString(0xff & messageDigest[i]));
}
String md5 = sb.toString();
Run Code Online (Sandbox Code Playgroud)
这假设您实际上希望将 MD5 打印为十六进制字符串,而不是 BASE64 编码。这就是它通常的表示方式。
| 归档时间: |
|
| 查看次数: |
28265 次 |
| 最近记录: |