如何在Java中使用SHA-512散列密码?
我一直在研究一些关于Java字符串加密技术的信息,不幸的是,我还没有找到任何好的教程,如何在Java中使用SHA-512对字符串进行哈希处理;我读了一些关于MD5和Base64的博客,但它们并不像我想要的那么安全(实际上,Base64不是一种加密技术),所以我更喜欢SHA-512。
我一直在研究一些关于Java字符串加密技术的信息,不幸的是,我还没有找到任何好的教程,如何在Java中使用SHA-512对字符串进行哈希处理;我读了一些关于MD5和Base64的博客,但它们并不像我想要的那么安全(实际上,Base64不是一种加密技术),所以我更喜欢SHA-512。
您可以将它用于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;
}
请停止使用哈希函数对密码进行编码!它们不能提供您需要的保护。相反,您应该使用 PBKDF2、bcrypt 或 scrypt 等算法。
引用: