【发布时间】:2019-02-04 13:51:22
【问题描述】:
从今天早上开始,我一直在努力让它发挥作用,但我已经被困在这件事上好几个小时了。 这是我的公钥:https://pastebin.com/EBszJhSi 我有一个字符串需要加密。
String = "你好"
这是我下面的代码...
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)));
}
【问题讨论】:
标签: php rsa public-key-encryption phpseclib php-7.2