Php OpenSSL加密是正常的,但解密是错误的

Php OpenSSL加密是正常的,但解密是错误的,php,encryption,openssl,Php,Encryption,Openssl,首先,我很抱歉我的英语不好 我现在被迫使用OpenSSL并测试它 我有公钥: $key = "{key}"; $key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap($key, 64, "\n", true) . "\n-----END PUBLIC KEY-----"; 当我使用: $secret = "test"; $test = openssl_public_encrypt($secret, $encrypted, $key); 。。。一切正

首先,我很抱歉我的英语不好

我现在被迫使用OpenSSL并测试它

我有公钥:

$key = "{key}"; 
$key = "-----BEGIN PUBLIC KEY-----\n" . wordwrap($key, 64, "\n", true) . "\n-----END PUBLIC KEY-----";
当我使用:

$secret = "test";
$test = openssl_public_encrypt($secret, $encrypted, $key);
。。。一切正常,在$test中是正确的-所以加密是正常的

但是现在,我想把它解密回来,所以我使用:

$ok = openssl_public_decrypt($encrypted, $vys, $key);
…在这里,$ok变量包含false:( 这怎么可能


非常感谢大家!

您应该使用
openssl\u private\u decrypt()
您需要提供私钥作为参数。

尝试阅读更多关于和的信息,您应该使用
openssl\u private\u decrypt()

您需要提供私钥作为参数。

尝试阅读更多关于和

谢谢-我已经阅读了您的链接。但是我从哪里获得匹配的私钥?我只有一个公钥。并且需要解密数据,这些数据已经由公钥加密。我只获得了公钥、加密数据,仅此而已-因此我必须解密数据。您必须拥有私钥才能解密加密的数据ta.而且不可能从公钥和加密数据中获得匹配的私钥。你可以要求私钥的所有者提供。谢谢-我已经阅读了你的链接。但是我从哪里获得匹配的私钥?我只有公钥。并且需要解密已由公钥加密的数据。我只获得了公钥,加密的data,就是这样-顺便说一下,我必须解密数据。你必须拥有私钥才能解密加密数据。而且不可能从公钥和加密数据中获得匹配的私钥。你可以要求私钥所有者提供它。