Есть AES128 или AES256 на Android? - PullRequest
1 голос
/ 06 мая 2011

Привет,

На 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?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 06 мая 2011

На Android мы не можем указать AES128 или AES256.Но работает ли AES128 или AES256 на самом деле при использовании «AES / CBC / PKCS5Padding»?

Я ошибочно полагаю, что ни один из них не определен в getInstance ()?Я полагаю, что длина ключа шифра будет определена только после вызова init (), где вы устанавливаете ключ определенной длины.

0 голосов
/ 06 мая 2011

Эта статья должна позволять вам определять сильные стороны и шифры, доступные в образе времени выполнения.Я не знаю, ударит ли он вас в этот момент, но, указав PBEKeySpec длиной 256, я думаю, что он у вас может быть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...