0

我想使用公钥加密大字符串并存储在文件中。然后读取文件内容并使用私钥解密。我怎样才能做到这一点。php.ini 中是否有任何默认函数或代码可用?

4

3 回答 3

1

您要加密的文本有多大?您的明文不能大于 RSA 中的密钥长度(即模数)。在这些情况下,最常见的做法是对对称密码密钥进行加密,然后使用该密钥对明文进行加密。

PHPopenssl_seal()openssl_open()函数(假设您安装了 openssl 扩展)使用 RC4 密码执行此操作。

于 2013-10-25T19:14:20.347 回答
0

查看 PHP 的 OPENSSL 文档,因为您需要知道如何处理 PKI。你会在那里找到你需要的每一个信息。

链接在这里

于 2013-10-22T07:41:54.640 回答
-1

您可以使用 Zend Framework 2 (Zend\Crypt\PublicKey) 做到这一点

ZF2:公钥密码学

示例(来自上面链接的文档!)

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";
}

(编辑:添加到代码中的空格)

于 2013-10-22T07:43:33.473 回答