PHP上的RSA解密



我正在尝试在PHP上使用RSA,但到目前为止我还不确定我做错了什么。所以基本上,我有一个RSA加密的字符串,我从一个站点得到,然后我检查它是否和public_key相同。

require_once 'vendor/autoload.php';
$rsa = new phpseclibCryptRSA();
$secure_signature = urldecode(*<base64 encoded signature>*);
$decodedSig = base64_decode($secure_signature);
$public_key = *<base64 encoded key>*;
$rsa->loadKey($public_key);
$res = $rsa->decrypt($decodedSig);
echo $res;

我遇到一个错误,上面写着Decryption error。然后我查看了其他RSA公钥,注意到它在密钥的前面和末尾分别有----BEGIN PUBLIC KEY--------END PUBLIC KEY----文本。

所以我更改了$public_key的值。

$public_key = "---BEGIN PUBLIC KEY----n*<base64 encoded key>*----END PUBLIC KEY----";

之后,它不会显示任何错误,但也不会显示任何内容。我怎么知道我做得对?我是不是错过了什么?

我已经经历过了。如果您碰巧var_dump解密方法响应,那么您将得到bool(false(或NULL。通知加密过程,即加密方式与解密过程不匹配。因此,这个问题。检查您的加密&解密步骤/过程。看看区别。

最新更新