私は大きなファイルをバイトチャンクで読み込むためにBufferedInputStreamでラップされたFileInputStreamを使用しています。大きなファイルのHmac MD5
public void MD5(BufferedInputStream in, Key pubKey) throws Exception{
Mac md = Mac.getInstance("HmacMD5");
md.init(pubKey);
byte[] contents = new byte[1024];
int readSize;
while ((readSize = in.read(contents)) != -1) {
{
md.update(contents,0,readSize);
}
byte[] hashValue = md.doFinal();
}
}
それは小さなファイルのための完全に正常に動作しますが、ファイルの200メガバイトのファイルの時間の非常識な量を取ります。
SHA256withRSAを使用して200MBのファイルに署名しようとしている間も、同じ方法が問題なく動作します。
具体的な理由はありますか?私はそれがmd.update()と関係があると感じています。
しかし、「署名」を使用している間も同じ機能を使用しました。
ご協力いただければ幸いです。
ログを追加して、辛抱している時間を確認してください。 –