我想使用公钥加密大字符串并存储在文件中。然后读取文件的内容并使用私钥解密。 我怎样才能做到这一点。 php中是否有任何默认函数或代码。
答案 0 :(得分:0)
检查PHP的OPENSSL文档,因为您需要知道如何处理PKI。你会在那里找到你需要的所有信息。
答案 1 :(得分:0)
您想要加密的文字有多大?您不能在RSA中使用大于密钥长度(即模数)的明文。在这些情况下最常做的是加密对称密码密钥,然后用该密钥加密明文。
PHP的openssl_seal()
和openssl_open()
函数(假设您已安装openssl扩展)使用RC4密码执行此操作。
答案 2 :(得分:-1)
您可以使用Zend Framework 2(Zend \ Crypt \ PublicKey)
执行此操作示例(来自上面链接的文档!)
use Zend\Crypt\PublicKey\Rsa;
$rsa = Rsa::factory(array(
'public_key' => 'public_key.pub',
'private_key' => 'private_key.pem',
'pass_phrase' => 'test',
'binary_output' => false
));
$text = 'This is the message to encrypt';
$encrypt = $rsa->encrypt($text);
printf("Encrypted message:\n%s\n", $encrypt);
$decrypt = $rsa->decrypt($encrypt);
if ($text !== $decrypt) {
echo "ERROR\n";
} else {
echo "Encryption and decryption performed successfully!\n";
}
(编辑:添加到代码中的空格)