1

私は現在、ここでデモされているような署名付き証明書を使用して、署名ファイルに対していくつかの ZIP ファイルをチェックする Android アプリのプロセスを持っています ( http://docs.oracle.com/javase/tutorial/security/apisign/vstep4. html )

ただし、私のファイルはすべて 200MB ~ 900MB であるため、すべてのファイルを調べて検証するには 11 ~ 25 分かかります。現在「SHA1withRSA」を使用しており、「SHA256withRSA」にアップグレードしたいと考えています。ただし、より高度な暗号化であるため、さらに時間がかかります。このアプリに対応する iOS は、同じ ZIP ファイルの検証を約 2 分で行うので、このプロセスを高速化するにはどうすればよいでしょうか? バッファー サイズを変更したり、While ループを再処理したりしても、結果は得られませんでした。

ファイル全体をループするのではなく、zip の一部だけを確認する方法があるかどうか疑問に思っていました。

public boolean verify(String dataFile, String signFile) throws Exception {
    byte[] sign = readSignature(signFile);
    Signature sg = Signature.getInstance("SHA1withRSA", "BC");
    sg.initVerify(publicKey);

    FileInputStream datafis = new FileInputStream(dataFile);
    BufferedInputStream bufin = new BufferedInputStream(datafis);

    byte[] buffer = new byte[2048];

    int len;       

    while (bufin.available() !=0) {
        len = bufin.read(buffer);
        sg.update(buffer, 0, len);
    }

    bufin.close();
    return sg.verify(sign);
4

0 に答える 0