Привет,
На Android мы не можем указать AES128 или AES256. Но работает ли AES128 или AES256 на самом деле при использовании «AES / CBC / PKCS5Padding»?
Я пробовал что-то вроде ниже
SecretKeyFactory sf = SecretKeyFactory.getInstance("PBEWITHSHAAND256BITAES-CBC-BC");
KeySpec ks = new PBEKeySpec(masterPassword.toCharArray(),k1,1320,256);
secKey = sf.generateSecret(ks);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secKey, generateIV(cipher));
Созданный SecretKeyFactory имеет размер ключа 256, а keyLength, указанное в PBEKeySpec, кажется, не имеет значения. Независимо от того, 256 или 128, или любое другое положительное число, сгенерированный secKey всегда имеет 256 keySize. Поскольку мы передали secKey для инициализации шифра, то теперь, будет ли шифрование выполняться с использованием AES128 или AES256?
Спасибо!