1
サーバからダウンロードしたファイルのmd5sumと一致させようとしています。 合計が一致する場合にのみ処理が続行されます。MD5sumが正しく計算されていません
try {
MessageDigest digest = MessageDigest.getInstance("MD5");
File f = new File(fileName);
InputStream is = new FileInputStream(f);
byte[] buffer = new byte[8192];
int read = 0;
while((read = is.read(buffer)) > 0) {
digest.update(buffer, 0, read);
}
is.close();
byte[] md5sum = digest.digest();
BigInteger bigInt = new BigInteger(1, md5sum);
output = bigInt.toString(16);
System.out.println("MD5: " + output);
} catch(IOException e) {
throw new RuntimeException("Unable to process file for MD5", e);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
上記のコードでは、毎回一部のファイルでmd5sumが正しく提供されません。
私がコンソールに行き、md5sum <filename>
のmd5sumがサーバーのものと同じであることを確認します。しかし、コードから同じものが計算されると、別の結果が得られます。
ダウンロードしたファイルのvimdiffは差分を提供していません..ファイルはダウンロード後に適切です。
私は上記のコードで問題を見ることができません。
バッファサイズを変更しようとしています。しかし、運が、私はそれが原因で、彼らは重要ではないとしてなど
byte[] buffer = new byte[8192];
よろしく
Dheeraj女子
誰かがコードを見て、何か間違いがないか教えてください。 –
実際の結果と予想される結果を掲載するのはどうですか? – EJP
私が持っているもの8611c0b0832bce5a19ceee626a403a7期待される08611c0b0832bce5a19ceee626a403a7 –