我一直在研究Java String加密技术,不幸的是,我还没有找到任何好的教程如何在Java语言中使用SHA-512散列字符串;我读了一些关于MD5和Base64的博客,但它们并不像我想的那样安全(实际上,Base64不是一种加密技术),所以我更喜欢SHA-512。
发布于 2015-10-13 00:13:23
您可以将其用于SHA-512
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public String get_SHA_512_SecurePassword(String passwordToHash, String salt){
String generatedPassword = null;
try {
MessageDigest md = MessageDigest.getInstance("SHA-512");
md.update(salt.getBytes(StandardCharsets.UTF_8));
byte[] bytes = md.digest(passwordToHash.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
for(int i=0; i< bytes.length ;i++){
sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
}
generatedPassword = sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return generatedPassword;
}
发布于 2018-07-03 03:16:23
使用Guava
Hashing.sha512().hashString(s, StandardCharsets.UTF_8).toString()
发布于 2015-10-13 14:38:44
使用Apache Commons Crypt,它的特色是基于SHA-512的crypt()函数,这些函数生成的加盐哈希甚至与libc的crypt兼容,因此也可以在PHP/Perl/Python/C和大多数数据库中使用。
https://stackoverflow.com/questions/33085493
复制相似问题