我已经使用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#处理程序,可以解决邮件没有问题......
有什么想法吗?
答案 0 :(得分:1)
我正在使用0.2.2分发phpseclib,然后我尝试了phpseclib的SVN头,它完美地工作:)