Невозможно расшифровать зашифрованные данные из MySQLPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Невозможно расшифровать зашифрованные данные из MySQL

Сообщение Anonymous »

Я зашифрую некоторую строку с помощью openssl_encrypt

Код: Выделить всё

    private function encryptApiCode($token, $cipher)
{
$tag = '';

return openssl_encrypt($token, 'aes-256-gcm', $cipher, 0, 'xxxxxxxxxxxxxxxx', $tag);
}
Если я попытаюсь, проблем не будет

Код: Выделить всё

openssl_decrypt(encryptApiCode($token, $cipher), 'aes-256-gcm', $cipher, 0, 'xxxxxxxxxxxxxxxx', $tag);
Сразу после того, как я зашифровал это, все нормально декодировалось, я получаю то, что зашифровал. Но затем я помещаю возвращенные данные в столбец MySQL BLOB:

Код: Выделить всё

$data = [
...,
'code' => encryptApiCode($token, $cipher),
...
];
$this->tableGateway->update($data, ['id' => $id]);
А если я получу данные из базы данных с помощью Pdo_Mysql:

Код: Выделить всё

$rowset = $this->tableGateway->select($data)->toArray();
и попробуйте расшифровать строку с помощью

Код: Выделить всё

openssl_decrypt($dataFromDb, 'aes-256-gcm', $cipher, 0, 'xxxxxxxxxxxxxxxx', $tag);
От openssl_error_string() я получаю следующую ошибку:

Код: Выделить всё

error:0480006C:PEM routines::no start line
Итак, как мне правильно расшифровать? Я не знаю, почему мой вопрос был помечен как дубликат ошибки: ошибка: 0909006C: процедуры PEM: get_name: no start line - node, потому что я даже не понимаю, как мне использовать PEM в этом случае. Даже если это была ошибка в чем-то другом, функция descrypt все равно возвращает false и ничего не делает.

Подробнее здесь: https://stackoverflow.com/questions/790 ... from-mysql
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»