Каков максимальный размер переменной, которую можно зашифровать с помощью помощника шифрования в laravel? - PullRequest
0 голосов
/ 28 июня 2019

Я прочитал документацию здесь: https://laravel.com/docs/5.8/encryption Но нет никаких указаний на ограничение размера данных, которые должны быть зашифрованы.

Я хочу зашифровать массив с помощью шифрования Laravel. Массив может иметь любое количество элементов. Это зашифрованное значение будет одним из параметров URL позже. Итак, я должен выяснить, будет ли он работать или нет, когда размер массива слишком велик.

Любые предложения приветствуются.

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Laravel использует AES в режиме CBC для шифрования. Режимы работы блочного шифра используются для шифрования произвольного количества данных блочным шифром, который в противном случае был бы ограничен одним блоком (т. Е. 16 байтов для AES).

Блочный шифр сам по себе подходит только для безопасного криптографического преобразования (шифрования или дешифрования) одной группы битов фиксированной длины, называемой блоком.Режим работы описывает, как многократно применять одноблочную операцию шифра для безопасного преобразования объемов данных, больших, чем блок.

Однако, чем больше данных зашифровано одним ключом, тем больше вероятностьэто получить один и тот же блок зашифрованного текста дважды.Это может быть использовано для восстановления открытого текста.Поэтому через некоторое время необходимо прекратить использование определенного ключа шифрования.

Для AES в режиме CBC обычным предложением является поворот ключей после шифрования нескольких сотен МБ данных для обеспечения супер-безопасности и не позднее нескольких десятков ТБ данных.См. этот вопрос и этот вопрос в Cryptography SE для обоснования.

0 голосов
/ 28 июня 2019

Максимальный размер переменной, которую вы можете передать вспомогательному методу Laravel - encrypt() - это максимальный размер, допустимый для переменной String в PHP, поскольку для ее спецификации требуется параметр String.

Согласно Руководству по PHP *1005* максимальный размер строки в 32-битных системах составляет 2 ГБ.В 64-битных системах размер строки не ограничен. Единственным возможным ограничением размера будет размер физической памяти, доступной для вашего приложения.

Любой метод PHP (встроенный или определенный пользователем), который требуетстроковый параметр извлечет выгоду из этих спецификаций максимального размера.

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