Следующий метод шифрует данный массив байтов, где keyC - это ключ шифрования.
initalVector - начальный вектор, используемый для шифрования.
Этот вектор обычно используется для шифрования AES в режиме счетчика (CTR), но не является необходимым для других режимов. Это массив из определенных 16 байтов, используемый для шифрования и дешифрования.
private byte[] encryptAES128(byte[] input, byte[] initialVector) {
SecretKey aeskey = new SecretKeySpec(keyC, 0, 16, "AES");
AlgorithmParameterSpec paramSpec = new IvParameterSpec(initialVector);
cipher = Cipher.getInstance("AES/CTR/NOPADDING");
getAesCTRCipher().init(Cipher.ENCRYPT_MODE, aeskey, paramSpec);
return getAesCTRCipher().doFinal(input);
}
Этот метод возвращает новый байтовый массив, являющийся зашифрованным входным массивом.
Он всегда работает в блоках по 16 байт.
Для больших файлов вам нужно запустить цикл for для байтов и объединить результат:)
Удачи!
Edit:
После шифрования блока из 16 байтов необходимо увеличить начальный вектор, то есть, если шифрование выполняется в режиме счетчика: