Android是否支持AES256 / CTR / NoPadding?

时间:2017-10-11 10:50:37

标签: android security encryption

Cipher cipher = Cipher.getInstance("AES256/CTR/NoPadding")

以上代码抛出以下异常:

  

堆栈跟踪:java.security.NoSuchAlgorithmException:   AES256 / CTR / NoPadding at   javax.crypto.Cipher.getCipher(Cipher.java:296)at   javax.crypto.Cipher.getInstance(Cipher.java:174)

Android是否支持“AES256 / CTR / NoPadding”?该设备是否依赖?我正在测试的Android设备有以下提供商:

  • AndroidOpenSSL版本1.0
  • DRLCertFactory版本1.0
  • BC版本1.47
  • 加密版本1.0
  • HarmonyJSSE版本1.0

1 个答案:

答案 0 :(得分:5)

Cipher.java 中,您可以看到可用的转换。不幸的是,没有“AES256 / CTR / NoPadding”(这就是为什么你会看到这个例外),但当然有“AES / CTR / NoPadding”,你应该使用它。

AES密钥大小(在Cipher中使用)完全取决于Android中的密钥,因此您应该生成并使用适当长度的密钥。

在Api等级26+中,您可以直接使用“AES_256 ...”,但仅适用于CBC和ECB模式(https://developer.android.com/reference/javax/crypto/Cipher.html