📜  Java中的 SHA-256 哈希(1)

📅  最后修改于: 2023-12-03 15:16:26.362000             🧑  作者: Mango

Java中的SHA-256哈希

SHA-256哈希算法是一种用于将数据进行加密的安全散列算法。它将输入数据转换为一串固定长度的字符,称为哈希值。SHA-256算法是SHA-2算法族中的一种,它使用256位长度的哈希值。

在Java中使用SHA-256算法进行哈希很容易。Java内置了一个名为MessageDigest的类,其中包括对SHA-256哈希的支持。下面是一个例子:

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.nio.charset.StandardCharsets;

public class Example {
    public static void main(String[] args) throws NoSuchAlgorithmException {
        String input = "Hello World!";
        
        MessageDigest digest = MessageDigest.getInstance("SHA-256");
        byte[] hash = digest.digest(input.getBytes(StandardCharsets.UTF_8));
        
        String hex = bytesToHex(hash);
        System.out.println(hex);
    }
    
    private static String bytesToHex(byte[] bytes) {
        StringBuilder hex = new StringBuilder();
        for (byte b : bytes) {
            hex.append(String.format("%02x", b));
        }
        return hex.toString();
    }
}

以上代码将输出:

b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9

这就是SHA-256哈希值。我们将字符串"Hello World!"作为输入,通过SHA-256哈希算法运算得到的结果。

此外,MessageDigest类提供了一些其他的方法来处理哈希。例如,可以使用update(byte[] input)方法向哈希对象输入数据,可以使用reset()方法重置哈希对象等等。具体的实现可以参考Java API文档。

总结

SHA-256哈希算法是一种安全的散列算法,用于将数据进行加密。在Java中使用SHA-256算法进行哈希很容易,只需使用内置的MessageDigest类即可。对于需要加密的数据,只需将其转换为byte[]类型进行操作即可。