Android

时间:2015-12-09 13:04:14

标签: java android performance bouncycastle spongycastle

我使用Bouncy Castle的最新来源来实施Serpent GCM加密。

public byte[] encrypt(byte[] key, byte[] iv, byte[] pt, byte[] aad,
        int tagLength) throws InvalidCipherTextException {
    GCMBlockCipher c = new GCMBlockCipher(new SerpentEngine());
    c.init(true,
            new AEADParameters(new KeyParameter(key), tagLength, iv, aad));
    int outsize = c.getOutputSize(pt.length);
    byte[] out = new byte[outsize];
    int len = c.processBytes(pt, 0, pt.length, out, 0);
    c.doFinal(out, len);
    return out;
}

它在我的台式机(Windows Core i7)上运行良好。加密5Mb文件大约需要190毫秒。但突然之间,在三星galaxy 4平板电脑(Android 5.0.1)上部署的相同代码需要40秒才能对同一文件进行相同的加密。我们尝试了华为Acend G300(Android 2.3.6),只用了17秒。

我们也使用Spongy Castle测试了相同的加密,遗憾的是我们没有获得更好的性能。

  1. 您能不能让我知道为什么它与桌面有如此大的不同?为什么加密时间比功能强大的华为设备更快,而不是三星galaxy s4平板电脑?
  2. 如果有任何方法可以提高Android上代码的性能吗?
  3. 非常感谢您的帮助!

0 个答案:

没有答案