Я ломал голову.Я использую последнюю версию php 7. Я могу заставить rsa работать с коротким текстом, однако длинный текст, кажется, не работает.Я прочитал, чтобы использовать openssl_seal / open .. когда я продемонстрировал код на тестовой странице, он прекрасно работает .. когда я применяю его на практике с mysql, он не работает так, как это должно быть ..
Код шифрования:
$messageiv = openssl_random_pseudo_bytes(32);
openssl_seal($_POST[$_SESSION['message']], $encryptedmessage, $ekeys, array($_SESSION['recipient_publickey']), "AES256", $messageiv);
openssl_seal($_POST[$_SESSION['subject']], $encryptedsubject, $ekeys, array($_SESSION['recipient_publickey']), "AES256", $messageiv);
Вышеприведенное затем затем base91_encoded и сохраняется в blobs / varchar.
Для расшифровки
openssl_open(base91_decode($row['messagesubject']), $decryptedsubject, $ekeys[0], $_SESSION['privatersakey'], "AES256", base91_decode($row['messageiv']));
openssl_open(base91_decode($row['messagebody']), $decryptedbody, $ekeys[0], $_SESSION['privatersakey'], "AES256", base91_decode($row['messageiv']));
Перечисленные выше переменные $ decryptedsubject и $ decryptedmessage являются пустыми.
У меня была эта проблема до того, как я использовал openssl_public / private key encrypt / decrypt и добавил заполнение, это работало, однако с длинным текстом оно не будет шифровать / дешифровать ....
Любая помощьбыло бы здорово ...