2

在我正在使用的一个 android 项目中

import javax.crypto.Cipher;

ecipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); 

请问:AES128 还是AES256 是用的,是用的key 定义的吗?例如key="012345678901234567890123456789012";,结果会使用 AES256?

谢谢
托马斯

4

1 回答 1

1

是的,是否使用 AES128 或 AES256 由正在使用的密钥定义。

然而,决定它的不是String长度,而是byte[]长度。在您的代码中的某个时刻,您应该转换Stringbyte[]. 结果的大小byte[]就是您的密钥大小。在不知道如何转换"012345678901234567890123456789012"的情况下,不可能知道您的加密强度。

或者,您可以使用KeyGenerator

    KeyGenerator keyGen = KeyGenerator.getInstance("AES");
    keyGen.init(128); // or 256

    // Generate the secret key specs
    SecretKey secretKey = keyGen.generateKey();
    byte[] byteArray = secretKey.getEncoded();
于 2012-07-18T14:15:40.883 回答