gpt4 book ai didi

java - Android AES 解密字符串花费的时间太长

转载 作者:行者123 更新时间:2023-11-30 11:30:01 27 4
gpt4 key购买 nike

我在我的 Android 项目上使用 AES 解密来解密大型字符串对象(> 1 MB)。

我正在使用这种方法:

public static String decryptAES(String cryptedString, byte[] byteArrayAESKey) {

try {
IvParameterSpec ips = new IvParameterSpec(General.InitVector.getBytes("UTF-8"));
SecretKey aesKey = new SecretKeySpec(byteArrayAESKey, "AES");
byte[] TBCrypt = Base64.decode(cryptedString, Base64.DEFAULT);
// Decryption cipher
Cipher decryptCipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
// Initialize PBE Cipher with key and parameters
decryptCipher.init(Cipher.DECRYPT_MODE, aesKey, ips);
// Decrypt the cleartext
byte[] deciphertext = decryptCipher.doFinal(TBCrypt); // this may take a long time depending on string input length
return new String(deciphertext, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
Log.e("AES", "Decrypt failed : " + e.getMessage());
return "";
}
}

它运行良好,但在大型加密字符串上,在许多设备上需要很长时间。

有没有办法在安卓设备上改进这个方法?我应该切断加密的字符串来加速这个过程吗?我应该使用 SpongyCaSTLe 吗?

最佳答案

byte[] ciphertext = decrypt Cipher.doFinal(DECrypt); 不要那样做!而是考虑使用流,也许直接输出文件流(如果需要)?

关于java - Android AES 解密字符串花费的时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18026061/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com