Шифрование / дешифрование AES-256-CB C Строка в PHP & BASH, сохранение в / из MySQL? - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь понять, как я могу использовать openSSL для шифрования и дешифрования строки в bash и PHP и получать одинаковые результаты независимо от того, где я это делаю.

Мне нужно сохраните зашифрованную строку в MySQL и извлеките ее из MySQL для последующего чтения и расшифровки. Я счастлив, что могу читать и писать, например, MySQL

. В PHP я могу зашифровать и расшифровать, используя следующее:

$textToEncrypt    = "Test Message";
$key              = "Testkey";
$iv               = "+ByrvYwA-4hB^?jF";
$keyHex           = bin2hex($key);
$ivHex            = bin2hex($iv);

//To encrypt
$encryptedMessage = openssl_encrypt($textToEncrypt, "AES-256-CBC", $key, 0, $iv);

//To Decrypt
$decryptedMessage = openssl_decrypt($encryptedMessage, "AES-256-CBC", $key, 0, $iv);

Это можно расшифровать в bash, используя:

echo -n "3GfrAdvtkHSpalmb4qzEVw==" | openssl aes-256-cbc -d -a -A -K "546573746b6579" -iv "2b427972765977412d3468425e3f6a46"

То, с чем я борюсь, - это шифрование сообщение в BASH, чтобы его можно было расшифровать обратно в PHP.

Может кто-нибудь посоветовать по этому поводу? Спасибо

1 Ответ

0 голосов
/ 20 апреля 2020

Просто поменяйте местами параметр openssl. -d для расшифровки, -e для шифрования

echo -n "Test Message" | openssl aes-256-cbc -e -a -A -K "546573746b6579" -iv "2b427972765977412d3468425e3f6a46"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...