Мне нужно реализовать 256-битное AES-шифрование, но все примеры, которые я нашел в Интернете, используют "KeyGenerator" для генерации 256-битного ключа, но я бы хотел использовать свой собственный ключ доступа. Как я могу создать свой собственный ключ? Я попытался заполнить его до 256 бит, но затем я получаю сообщение об ошибке, что ключ слишком длинный. У меня установлен установленный неограниченный патч, поэтому проблема не в этом:)
Т.е. KeyGenerator выглядит так...
// Get the KeyGenerator
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128); // 192 and 256 bits may not be available
// Generate the secret key specs.
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
ИЗМЕНИТЬ
Я действительно заполнял пароль до 256 байтов, а не бит, который слишком длинный. Ниже приведен некоторый код, который я использую сейчас, когда у меня есть еще некоторый опыт.
byte[] key = null; // TODO
byte[] input = null; // TODO
byte[] output = null;
SecretKeySpec keySpec = null;
keySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
output = cipher.doFinal(input)
Биты "TODO" вам нужно сделать сами: -)