Android:定义要使用的加密:AES 128或AES 256

时间:2012-07-18 14:05:53

标签: java android encryption aes

在我正在使用的Android项目中

import javax.crypto.Cipher;

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

我想问一下:无论是使用AES128还是AES256,都是由使用的密钥定义的?例如,key="012345678901234567890123456789012";会使用AES256吗?

感谢
托马斯

1 个答案:

答案 0 :(得分:1)

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

然而,它不是String长度,而是确定它的byte[]长度。在您的代码中的某个时刻,您应该将String转换为byte[]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();