非对称加密:简单的实现rsa公钥秘钥生成和加密解密

2023-07-24 16:40:22 浏览469次 作者: 旋风

收藏
<?php
ob_start();
header("Content-type:text/html;charset=utf-8");
error_reporting(1);
if (!extension_loaded('OpenSSL')) {
exit("Need OpenSSL extension");
}
$opensslConfigPath = "E:/phpstudy_pro/Extensions/Apache2.4.39/conf/openssl.cnf"; //apache路径下的openssl.conf文件路径
$config = array(
        "digest_alg" => "sha512",
        "private_key_bits" => 4096,
        "private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);
if(!$res) {
//当只生成公钥,无法生成私钥或私钥空白,需要调用openssl.cnf文件才可以
   $config['config'] = $opensslConfigPath;
   $res = openssl_pkey_new($config);
}
/*
//页面显示私钥
openssl_pkey_export($res, $privKey, NULL, $config);
echo $privKey;
*/
//生成私钥存储到private.key文件中
openssl_pkey_export_to_file($res,'./private.key',null,$config);
$pubKey = openssl_pkey_get_details($res);
/*
//页面显示公钥
* echo $pubKey['key'];
*/
//生成公钥存储到private.key文件中
file_put_contents('public.key',$pubKey['key']);
//获取公钥和私钥
$pri_key = file_get_contents('private.key');
$pub_key = file_get_contents('public.key');
//使用公钥加密
$data = '***APP公司经过长时间的运作,设备完善,技术先进,公司环境干净,运营较优。';
openssl_public_encrypt($data, $encrypt_str, $pub_key);
echo '加密后:'.$encrypt_str.'<br/>';
//使用私钥解密:
openssl_private_decrypt($encrypt_str, $unencrypt_text, $pri_key);
echo '<hr />解密后:'.$unencrypt_text.'<br/>';

运行结果如下:

1.png


顺便把公钥和私钥发出来,大家可以看一下格式

一、公钥:

-----BEGIN PUBLIC KEY-----

MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArrQF6wsZex7qrjNiCcai

abqqZTGcNZ6OYDpwhMoyuCrFPCLi53YoOWQDVgDuiwL7HnVLoK3kmeR3EhJ0YtTt

XVbxaLn11lFkp2rYSM241q6QHwfdZ6upDUeEBYFKYRJYY6UV84xf1FtRIPNCzVTd

DcC1shj60uHmbPYShIk043S934dRB3ihX9SWfQ5ane4Rq/gFmLL+J5Xi8nwkIgSd

pfsoCFg9fFv6H8FX540cGwvsKf0noo+P+zwURf408X5+uYv3n8R+QmTTqtKKqgFR

sKfjwvOyiH0/MKsvHh9z7K2FxIec2gHmSXNBsLxcQuM4snZ+iLrweMybFv5TSyNi

s/b2CH9niAg7BFIyPac6771by/r0q7kKvoSw/1isoMJNczW/VmLLNAkMH8prTA4F

7A/7IC6K+9hx42i5rzoxtFxntrw5QjN4phj3I5H9iCniQBX6DcWo4eY2Z1wU/I/Q

RmJM8lx6dVymgONZ2SfLSwKrz3pqXVDbZhXUXQSY0UjQknH5L/OzZg9y4k5jSboY

ZqJ5Ib6typlUfMZXTf3rc6qd2DTOpq2vOumXoLQrfxpHil3qQjR0q4yIO76z7FB8

nOM/jMWrWOaJhZ3+UZPPQj3TZ1ZOqnCAxGVfGBbuq3sxe5ydZahZ81HssNJWpHsT

222ksbL8Fd8YXtu4c2E6t4UCAwEAAQ==

-----END PUBLIC KEY-----

二、私钥:

-----BEGIN PRIVATE KEY-----

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

8PpDdpYcf+a6F4P/pakpUEkOcLM4uA==

-----END PRIVATE KEY-----


当您发现内容错误或代码bug,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。

收藏 分享

相关文章

评论:

文明上网理性发言,请遵守 新闻评论服务协议

当前还没有评论,快来评论吧

上报错误