poo*_*tha 5 php encryption openssl public-key-encryption php-openssl
$ publicKey =“ ../ssh/public/pub”; $ plaintext =“要加密的字符串”;
$pubKey = openssl_pkey_get_public($publicKey);
openssl_public_encrypt($plaintext, $encrypted, $pubKey);
echo $encrypted; //encrypted string
Run Code Online (Sandbox Code Playgroud)
上面的代码生成以下错误
openssl_public_encrypt()[http://php.net/function.openssl-public-encrypt]:密钥参数不是有效的公用密钥[APP / controllers / supportservice_controller.php,第144行]
我使用以下命令使用openssl创建了密钥:
生成一个1024位的rsa私钥,要求输入密码以对其进行加密并将其保存到文件openssl genrsa -des3 -out / path / to / privatekey 1024
生成专用密钥的公用密钥并保存到文件
openssl rsa -in / path / to / privatekey -pubout -out / path / to / publickey
在 PHP 中使用 OpenSSL 的函数时,公钥必须封装在 X.509 证书中。您可以使用 CSR 创建它。或者您可以使用phpseclib(一个纯 PHP RSA 实现),并直接使用原始公钥。例如。
<?php
include('Crypt/RSA.php');
$rsa = new Crypt_RSA();
$rsa->loadKey('...'); // public key
$plaintext = '...';
//$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$ciphertext = $rsa->encrypt($plaintext);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4438 次 |
| 最近记录: |