1
我需要发送一个RSA使用公钥加密的密码(以及其他一些数据)。下面是从密码的文档的精确操作的指令:PHP RSA加密逻辑
- 编码密码Base64和确保UTF-8编码
- 加密的口令与RSA与提供的公共密钥,没有块模式,和PKCS1Padding
- 编码导致加密的Base64中以可靠的UTF-8编码
下面是我使用我的代码似乎是正确的:
function encryptPassword($pass) {
$pass = base64_encode($pass);
$fp = fopen("./cert.crt", "r");
$publicKey = fread($fp, 8192);
fclose($fp);
openssl_get_publickey($publicKey);
openssl_public_encrypt($pass, $cryptedText, $publicKey, OPENSSL_PKCS1_PADDING);
return base64_encode(utf8_encode($cryptedText));
}
我在对方说错误,说密码无法解码。除了错误信息之外,他们的支持基本上是不存在的,他们说一切都是正确的。我的问题是,我是否根据文档发送了他们要求的内容?
在此先感谢!
感谢您的答复。当它不起作用时,我把那个utf8_encode作为一个绝望尝试扔进去。我已经拿出来了,现在也在传递公共密钥资源,但是我仍然从服务器收到相同的错误。 – rchamberlin 2015-02-11 20:38:53
你可以试试'$ pass = base64_encode(utf8_encode($ pass));',但除此之外,我认为这符合描述。 – 2015-02-11 20:44:31