快速将文件的SHA256与服务器进行比较

时间:2018-09-17 07:30:34

标签: swift hash sha256

我正在计算移动设备中文件的SHA256,因此需要通过重新计算在服务器端对其进行比较。当前,在移动设备上计算出的值与在服务器上计算出的值不相同。

这是移动端的实现:

func sha256(data: Data) -> Data {
    var digestData = Data(count: Int(CC_SHA256_DIGEST_LENGTH))

    _ = digestData.withUnsafeMutableBytes {digestBytes in
        data.withUnsafeBytes {messageBytes in
            CC_SHA256(messageBytes, CC_LONG(data.count), digestBytes)
        }
    }
    return digestData
}

....
let localHash = sha256(data: data)
photoHash = "\(localHash.map { String(format: "%02hhx", $0) }.joined())"

在服务器端,我的servlet对收到的文件执行以下操作:

FileInputStream fis = new FileInputStream(f);
String sha256 = org.apache.commons.codec.digest.DigestUtils.sha256Hex(fis);
log.debug("SHA256 "+sha256);

我确定双方共享同一个文件,但是如何计算相同的HASH值?

0 个答案:

没有答案