我有一个文件,我需要计算它的SHA512值。我已经找到了很多为我提供服务的站点,但是我想用Java编程(嗯,Groovy,但这也是一样的)。
对于那些好奇的人,我正在运行甲骨文的TZUpdater工具,并将其指向一个本地文件。这需要一个包含该文件的SHA512值的文件。http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html
发布于 2015-07-30 19:28:31
如果第三方库是一个公平的游戏,番石榴的Files.hash可以使它变得简单如
Files.hash(new File(fileName), Hashing.sha512()).toString();...which也可能更高效;如果文件很大,就不需要像Files.readAllBytes解决方案那样一次性地存储在内存中。这还将以十六进制的形式输出适当的散列;如果需要,只需使用asBytes()而不是toString()。
发布于 2015-07-30 19:21:21
可以使用以下代码段计算文件的SHA-512摘要:
MessageDigest.getInstance("SHA-512").digest(Files.readAllBytes(Paths.get("/path/file.txt")))要使此代码工作,您将需要JDK7或更高版本。
注意:如果文件太大,无法在内存中使用,那么您可能应该按照建议使用番石榴。
发布于 2020-05-08 10:18:51
您还可以使用。
Maven存储库:https://mvnrepository.com/artifact/commons-codec/commons-codec
代码示例:
public static String calcSha512Hex(File file) throws FileNotFoundException, IOException {
return org.apache.commons.codec.digest.DigestUtils.sha512Hex(new FileInputStream(file));
}https://stackoverflow.com/questions/31732207
复制相似问题