J'utilise FileInputStream enveloppé avec BufferedInputStream pour lire dans un fichier volumineux en morceaux d'octets.Hmac MD5 d'un fichier volumineux
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();
}
}
Il fonctionne parfaitement bien pour un petit fichier, mais prend des quantités folles de temps pour un fichier de 200 Mo de fichier.
La même approche fonctionne parfaitement bien pendant que j'essaie de signer le fichier de 200 Mo en utilisant SHA256withRSA.
Y a-t-il une raison spécifique à cela? J'ai le sentiment que c'est quelque chose à voir avec md.update().
Mais j'ai utilisé la même fonction tout en utilisant 'Signature'.
Toute aide serait appréciée.
Vous pouvez ajouter un journal pour vérifier ce qui prend un temps fou. –