Шифрование Расшифруйте данные, создав случайные ключи и значения - PullRequest
0 голосов
/ 04 мая 2020

В codeigniter,

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

<?php echo form_open('targetcontrollerfunction/'.encryptionfunction(data_to_be_secured)); ?>

Таким образом, если кто-то идет на проверку элемента, он не может понять данные, которые передаются в контроллер.

Что я пробовал:

Я просмотрел документацию Codeigniter и несколько статей по stackoverflow и google. Они предлагают использовать библиотеку encryption для генерации случайного ключа и библиотеку encrypt для кодирования / декодирования данных с использованием этого ключа. Но проблема в том, что они хотят, чтобы я сохранил вновь сгенерированный ключ в $config["encryption_key"]

Здесь начинается проблема. В моей функции контроллера я проверяю учетную запись пользователя и устанавливаю некоторые переменные сеанса. В то же время я хочу, чтобы случайный ключ генерировался таким образом, чтобы он был на 100% уникальным для каждого пользователя, но когда я использую следующий код в своей функции контроллера:

$randomkey=bin2hex($this->encryption->create_key(16));
$config["encryption_key"]=$randomkey;
$this->session->set_userdata('somekey', $this->encrypt->encode("somevalue"));

, я также изменил его на :

$randomkey=bin2hex($this->encryption->create_key(16));
$config=array(
        'encryption_key'=>$randomkey
    );
$this->encryption->initialize($config);
$this->session->set_userdata('somekey', $this->encrypt->encode("somevalue"));

Я получаю сообщение об ошибке:

Для использования класса шифрования необходимо установить ключ шифрования в файле конфигурации.

* Библиотеки 1028 * не могут быть загружены в файл конфигурации. Файл php, ключ шифрования не может быть установлен внутри контроллера, я полностью сбит с толку. Как еще можно сгенерировать случайный ключ и использовать его для каждого сеанса?

1 Ответ

0 голосов
/ 04 мая 2020

Если вы используете CI 3, go в папке / application / config, отредактируйте config. php, затем введите ключ шифрования (32 символа)

Найдите строку ниже: $ config [ 'encryption_key'] = 'yourkeyhere';

...