сравнивая SHA256 файла в swift с сервером - PullRequest
0 голосов
/ 17 сентября 2018

Я вычисляю 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())"

и на стороне сервера мой сервлет делает следующее с полученным файлом:

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

Я уверен, что обе стороны используют один и тот же файл, но как я могу вычислить одно и то же значение HASH?

...