首先,我很抱歉我的英语不好。
我被迫使用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 :( 怎么可能?
非常感谢所有人!
答案 0 :(得分:5)
您应该使用openssl_private_decrypt()
解密
并且您需要提供私钥作为参数
尝试详细了解public key encryption和openssl_public_encrypt