java - 如何在 Java 中使用 SHA-512 对密码进行哈希处理?

标签 java security hash passwords sha512

我一直在研究 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;
}

关于java - 如何在 Java 中使用 SHA-512 对密码进行哈希处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33085493/

相关文章:

database - 散列和索引之间有什么区别?

ruby - 如何替换所有具有 '.' 的哈希键?

python - session 管理的 Itdangerous 存在安全问题吗?

java - Tomcat Guice/JDBC 内存泄漏

Java Spring ManyToOne 如何加载唯一引用

Java @Nullable 参数

security - 使用具有相同值的重复响应 header 可以吗?

javascript - 通过 javascript 将用户可输入的文本存储到隐藏表单中是否危险?

python - 如何哈希列表?

java - 如何正确调用抽象类中的方法