Я пытался заставить это работать с сегодняшнего утра, но я застрял в этом часах.Это мой открытый ключ: https://pastebin.com/EBszJhSi У меня есть строка, которую мне нужно зашифровать.
String = "Hello"
Это мой код ниже ...
function RSAEncryption($text)
{
$encrypted = 'hey';
$publicKey = "file:/".PUBLIC_KEY;
$plaintext = "Hello";
$pubkey = openssl_pkey_get_public(file_get_contents(PUBLIC_KEY));
openssl_public_encrypt($plaintext, $encrypted, re($publicKey), OPENSSL_PKCS1_PADDING);
echo $encrypted; //encrypted string
return $encrypted;
}
Это ничего не возвращает.Это чистый пробел.
var_dump(openssl_public_encrypt($plaintext, $encrypted, re($publicKey), OPENSSL_PKCS1_PADDING));
Возвращает «ложь».Я пробовал несколько библиотек, таких как phpseclib, и это имеет другую проблему.Я пробовал обе версии phpseclib, 1.0 и 2.0.Проблема с phpseclib заключалась в том, что файлы и некоторые переменные отсутствовали, хотя я загружал их из официальных источников.
В любом случае, может кто-нибудь помочь мне с этим?
РЕДАКТИРОВАТЬ:
Значение PUBLIC_KEY
равно /location/keys/publickey.pem
.
re()
Функция:
function re($key_file_path)
{
$handle = fopen($key_file_path, "r");
// echo "Key Contents : " . fread($handle, filesize($key_file_path)) . "<br>";
return nl2br(fread($handle, filesize($key_file_path)));
}