我正在构建一个使用spongycastle库的应用程序(这是bouncycastle的精简版),但是问题是当我执行此操作时:
KeyParameter key = (KeyParameter) generator.generateDerivedMacParameters(keyLength * 8); // key length in bits
并将其构建在任何API等于或低于6.0的手机上,操作速度非常慢。要查明运行速度很慢的确切代码(请注意,此代码位于海绵库中):
for (int count = 1; count < iterationCount; count++)
{
hMac.update(state, 0, state.length);
hMac.doFinal(state, 0);
for (int j = 0; j != state.length; j++)
{
out[outOff + j] ^= state[j];
}
}
迭代次数始终为800000,因为我需要它非常安全,但是在这些设备上执行此代码的过程几乎需要5分钟。有趣的是,在API 4.4上仅需一分钟。因此,在不减少迭代次数的情况下,是否有任何解决方法,也许我应该只使用bouncycastle或其他方法?