SHA1 Checksum在php和android中对同一个文件有所不同

时间:2016-02-10 05:19:20

标签: php android

我在PHP和Android中生成SHA1密钥以验证文件。但是我为PHP和Android获得了不同的密钥。

Android:

  try {
        MessageDigest digest = MessageDigest.getInstance("SHA-1");
        byte[] buffer = new byte[65536]; 
        InputStream fis = new FileInputStream(downloadFile.getPath());
        int n = 0;
        while (n != -1) {
            n = fis.read(buffer);
            if (n > 0) {
                digest.update(buffer, 0, n);
            }
        }
        fis.close();
        byte[] digestResult = digest.digest();
       log("CheckSum : " + byteArray2Hex(digestResult));
    } catch (Exception e) {
        log("Exception : " + e.getLocalizedMessage());
    }

PHP:

echo ' \nSHA1 File hash of '. $filePath . ': ' . sha1_file($filePath);

校验和输出:

PHP SHA1 CheckSum:e7a91cd4127149a230f3dcb5ae81605615d3e1be Android SHA1 CheckSum:19bcbd9d18a3880d2375bddb9181d75da3f32da0

任何人都可以帮忙解决这个问题。

1 个答案:

答案 0 :(得分:1)

从这个SO回答:https://stackoverflow.com/a/9855338/3393666考虑​​使用这个byteArray2Hex函数:

count++

我已经在java 1.7与使用SDK 23编译的PHP 7和Android 5.0上进行了测试。 希望这会有所帮助。