Java:如何为文件创建 SHA-1?

标签 java cryptography sha

在纯 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/

相关文章:

git 使用 SHA 检查 HEAD 上是否存在文件?

objective-c - Objective-C 中的 OpenSSL SHA256 等效项

php - PHP 和 Node.JS 中西里尔文 sha1 哈希值的差异

java - CrosshairOverlay 使用 CombinedXYPlot (jfreechart) 抛出 NullpointerException

java - 在Java中存储键值

java - Azure 存储 Blob : https://(storageAccountName). blob.core.windows.net/vhd?restype=container&comp=list 无法使用代理工作

php - 如何解密 PHP 中 npm-rsa 创建的数据?

java.util.Date 计算天数差异

Java密码学仿射密码错误输出

c# - 使用 AesCryptoServiceProvider 获取不正确的解密值