给定cert.cer时加密密码

时间:2017-08-25 07:57:19

标签: php encryption

我从服务提供商处获得了一个公钥,现在我想加密密码。

我试图以这种方式加密

$publicKey = file_get_contents('cert.cer');
//$plaintext = "Safaricom132!";
$plaintext = "safaricom323!";

openssl_public_encrypt($plaintext, $encrypted, $publicKey, OPENSSL_PKCS1_PADDING);

echo base64_encode($encrypted);

我得到了这个结果

k97YxoV0uS08ok0n99id8PPp9kfSdebhdHaVroTmGF16hR70+U30xSrsRgIaVvHrzu535oH7Mz2TxkgQktq4TmVnxIhWbwBYDlVfnNoAUaHAW/oOYbF6bRR+vCHvMAI8TrQLaMK8XhVMjHqr27pmoqEyzEYC0sop+rp2T81CcWFlyJDr57GHuSoeka8pHMFSsGGvU7S+K0ZZ7xNQGOUpvT8skDMo3u7RUjbDk466dEtR1SUWfYTwVcrBCAFWI9ElfzFzgrWSr+ECelbU7n4D9dJegt9HvPhI2Nnc2q0V7DvHdwO+lHt7tKlM9xbxCTewiFHWjn9+lCAzwqnorHwN3g== 

我应该指定我想要使用的密码,还是我生成有效加密文本的密钥?>

1 个答案:

答案 0 :(得分:1)

指定了密码。您的证书无疑包含RSA公钥 - 因此只能使用此证书进行RSA加密。并且您已指定PKCS#1填充,它确定用于RSA加密的加密方案。

毫无疑问,您已经生成了有效加密的文本。然而,100%肯定的唯一方法是用私钥解密所述密文(当然,在基本64解码密文之后)。如果它返回您的纯文本消息 - "safari323!" - 那么您就知道解密成功了。

请注意,PKCS#1并不像以前那样安全。目前最好的品种是OAEP填充或RSA-KEM。

相关问题