在我正在使用的Android项目中
import javax.crypto.Cipher;
ecipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
我想问一下:无论是使用AES128还是AES256,都是由使用的密钥定义的?例如,key="012345678901234567890123456789012";
会使用AES256吗?
感谢
托马斯
答案 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();