Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JDK libs计算Sha256数组_Java - Fatal编程技术网

Java 使用JDK libs计算Sha256数组

Java 使用JDK libs计算Sha256数组,java,Java,我有一些代码,使用Guava的散列类计算字节数组的散列 private String getShaForFile(byte[] bytes) { return Hashing.sha256().hashBytes(bytes).toString(); } 然而,一个linting工具抱怨这个类不稳定,所以我想用一个使用JDK类的实现来代替这个实现(我不想为了这个方法而添加Bouncy Castle之类的依赖项)。您可以将算法传递给MessageDigest.instance Mess

我有一些代码,使用Guava的
散列
类计算字节数组的散列

private String getShaForFile(byte[] bytes) {
    return Hashing.sha256().hashBytes(bytes).toString();
}

然而,一个linting工具抱怨这个类不稳定,所以我想用一个使用JDK类的实现来代替这个实现(我不想为了这个方法而添加Bouncy Castle之类的依赖项)。

您可以将算法传递给
MessageDigest.instance

 MessageDigest.getInstance(algorithm);
代码应该是如下所示:

MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] hash = md.digest(
  originalString.getBytes(StandardCharsets.UTF_8));
String sha256 = new String(Hex.encode(hash));
您还可以使用apachecommon的API

String sha256hex = DigestUtils.sha256Hex(originalString);

请添加针对不稳定类的警告/错误。