AES 256 символов - PullRequest
       2

AES 256 символов

0 голосов
/ 12 ноября 2018

Я шифрую данные, используя шифрование AES 256, хочу узнать, как я могу ограничить длину зашифрованного текста. если я зашифровываю 6-символьную строку, используя AES 256, он зашифровывается около 100 символов. Я хочу добавить эти данные в таблицу, чтобы узнать максимальную длину, чтобы я мог установить ограничение в таблице в php codeigniter.

$this->encryption->initialize(
                array(
                'cipher' => 'aes-256',
                'mode' => 'ECB',
                'key' => $key1
                )
            ); 

$this->encryption->encrypt($_POST['uname']);

1 Ответ

0 голосов
/ 12 ноября 2018

Наилучшим предположением, учитывая минимальную информацию, является то, что вы рассматриваете зашифрованные данные как символьную строку с нулевым символом в конце, и поскольку шифрование не завершает нулевое значение, зашифрованные данные являются нулевым терминатором, который просто находится в памяти и падает зашифрованные данные.

Следующие условия предполагают AES в режиме ECB.

  1. AES не шифрует символы, он шифрует байты данных.Если вы пытаетесь обработать зашифрованный вывод как символы, это неправильно и обычно приводит к ошибкам.Для вывода символов требуется, чтобы зашифрованные данные должны были быть закодированы, как правило, с использованием Base64 или шестнадцатеричного числа.
  2. AES - это блочный шифр, и поэтому выход всегда будет кратным длине блока, 16 байтов для AES..
  3. Если ввод не является точным кратным размеру блока, который требуется заполнить, обычно используется PKCS # 7.
  4. Данные, зашифрованные с помощью AES, будут содержать не более одного блокадлина больше, чем ввод из-за заполнения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...