Java 使用JDK libs计算Sha256数组
我有一些代码,使用Guava的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
散列
类计算字节数组的散列
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);
请添加针对不稳定类的警告/错误。