我正在尝试在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。通知加密过程,即加密方式与解密过程不匹配。因此,这个问题。检查您的加密&解密步骤/过程。看看区别。