Как создать случайные AES 128 PrivateKey и IV в виде строк? - PullRequest
0 голосов
/ 10 июля 2019

Какой простой способ сделать AES 128 private_keys и init vectors?

Я читал, что было обычной практикой использовать UUID , но когда я попытался реализовать:

    UUID uuid = UUID.randomUUID() ;
    String private_key = uuid.toString();

Сообщение об ошибке:

Неверная длина ключа AES: 36 байтов

говорит мне, что uuid.toString() = "38400000-8cf0-11bd-b23e-10b96e4ef00d" не 128 байтов.

Кроме того, как бы вы создали 16-байтовый вектор инициализации в виде строки? Вы также можете использовать uuid?

1 Ответ

1 голос
/ 10 июля 2019

Ключи (обычно шифрование) определяются байтовыми массивами.Вы можете проверить блог для примеров

и между прочим - мы говорим о 128 бит (= 16 байт)

Какой простой способ сделать AES 128private_keys и init векторы?

Наиболее безопасный способ - использовать класс SecureRandom, особенно для ключей.Я бы не подумал об использовании достаточно безопасного uuid (это не достаточно случайно)

SecureRandom rnd = new SecureRandom();
byte[] key = new byte[KEY_SIZE / 8];
byte[] iv = new byte[SYMMETRIC_BLOCK_SIZE / 8];
rnd.nextBytes(key);
rnd.nextBytes(iv);

Как создать случайные AES 128 PrivateKey и IV в качестве строк?

Если выЕсли вам нужно текстовое представление ключа или iv (байтовые массивы), вы можете их кодировать, Base64 или Hex являются наиболее распространенными кодировками

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