0

ファイルからAmazonデータベースにコンテンツを送信しようとしています。私が生成したMD5ハッシュは、Amazonが生成したものと一致しません。私は何が間違っているのですか?

  try {
        FileInputStream fis = new FileInputStream("upload.txt");                
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] buffer=new byte[8192];
        int read=0;
        while( (read = fis.read(buffer)) > 0)
                md.update(buffer, 0, read);
        byte[] md5 = md.digest();
        BigInteger bi=new BigInteger(1, md5);
        String output = bi.toString(16);
        System.out.println(output);
        SubmitFeed.submit(fis, output);
} catch(Exception e) { 
  // removed: not relevant to question
}

アマゾンが私に報告したハッシュは、異なるパターンを持っているようです。

私の:... 5856911dca2be1 .. ..

アマゾン:... AmY7PhCfg ==

4

1 に答える 1

4

Amazonハッシュはbase64を使用しているようですが、hexを使用しています。base64ライブラリ(このライブラリなど)を使用する場合は、問題ないはずです。(あなたの投稿の値は不完全であるため、それを検証することはできません。しかし、それが機能しなかった場合は驚かれることでしょう。)

( 2進数を16進数に変換する方法として使用しないこともお勧めします。これは、先行ゼロを法として行うことができますが、その目的ではありません。)BigInteger

于 2013-01-07T17:29:18.480 に答える