在纯 Java6 中为非常大的文件创建 SHA-1 的最佳方法是什么?如何实现此方法:
public abstract String createSha1(java.io.File file);
最佳答案
使用 MessageDigest
类并逐段提供数据。下面的示例忽略了将 byte[] 转换为字符串和关闭文件等细节,但应该会给您大致的概念。
public byte[] createSha1(File file) throws Exception {
MessageDigest digest = MessageDigest.getInstance("SHA-1");
InputStream fis = new FileInputStream(file);
int n = 0;
byte[] buffer = new byte[8192];
while (n != -1) {
n = fis.read(buffer);
if (n > 0) {
digest.update(buffer, 0, n);
}
}
return digest.digest();
}
关于Java:如何为文件创建 SHA-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293713/