2

私はストレージシステムに取り組んでいます。ユーザーはファイルをサーバーにアップロードします。

サーバー側では、MD5とSHA1の両方を使用してファイルのチェックサムを取得するプログラムを実装したいと思います。

DigestInputStream関数を使用してチェックサムを計算する方法を知っていますが、一度に1つのメソッド(MD5またはSHA1のいずれか)しかサポートしていないようです。JAVAでアップロードストリームを処理するときに、MD5とSHA1の両方を同時に計算するにはどうすればよいですか?

みんなありがとう

4

2 に答える 2

3

2つのMessageDigestインスタンス(1つはMD5用、もう1つはSHA1用)を使用して、読み取ったバイトを両方にフィー​​ドします。

于 2013-01-30T18:14:09.703 に答える
1

OpenSSLまたはBSafeのAPI、あるいはJava Crypto APIを自分で検索できるため、Java風の擬似コードとして...

バッファリーダー=...;
char [MY_ARRAY_SIZE] buf = ...;

while(true){
  int count = reader.read(buf、0、buf.length);
  if(count == -1){break};

  / *適切なAPIを確認し、エラーを自分で処理する必要があります* /
  md5.add(buf、count);
  sha256.add(buf、count);
}

文字列md5sum=base64(md5.finalize()); //適切なbase64メソッドを想定
文字列sha256sum=base64(sha256.finalize());

于 2013-01-30T18:19:45.437 に答える