我已经使用 Crypto++ 生成了一个公钥/私钥对,并在客户端使用 Crypto++ (RSAES_OAEP_SHA_Encryptor) 对密码进行了编码,然后我对其进行了 base64 编码。现在我想在服务器端 PHP 脚本中解码它(通过 phpseclib)。私钥的格式为“MIIEuwIBADANBgkqhkiG9w0BAQ....”(没有中断),然后我将其格式化为:
static $BEGIN_MARKER = "-----BEGIN RSA PRIVATE KEY-----";
static $END_MARKER = "-----END RSA PRIVATE KEY-----";
$pem = $BEGIN_MARKER . "\n";
$pem .= chunk_split($key, 64, "\n");
$pem .= $END_MARKER . "\n";
在加载之前:
$rsa->loadKey($pem,CRYPT_RSA_PRIVATE_FORMAT_PKCS1);
这似乎有效。但是通过以下方式解码消息:
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_OAEP);
$plaintext = $rsa->decrypt(base64_decode($input));
只产生一个空字符串。没有给出错误。
我有一个类似的 ASP.Net C# 处理程序,可以毫无问题地解码消息......
有任何想法吗 ?