openssl 对称 非对称加密

非对称加密:只加密不解密

对称加密:可加密可解密

 

公钥与私钥:

  1.     公钥和私钥的关系 是一对一的关系
  2.     公钥是用来加密的 私钥是用来解密的
  3.     公钥存在客户端 可以给任何人看
    私钥存在服务器端 只有内部人员可以看 私钥里有公钥的信息
  4.     在app里 公钥还作为身份标识

 

 

秘钥的实现:

一、环境的配置:

新建变量名为:OPENSSL_CONF

变量值为:..\..\Apacche\conf\openssl.cnf

 

在Path内引入php的三个环境变量(php_openssl、ssleay32、libeay32)

 

二、代码的实现 (windows)

//配置
$config = [
    "config" => 'D:\phpStudy\Apache\conf\openssl.cnf',
    "digest_alg" => "sha512",
    "private_key_bits" => 4096,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
];

//初始化
$res = openssl_pkey_new($config);

// 生成私钥并写入文件
openssl_pkey_export($res, $privKey,null,$config);
file_put_contents('./private.txt',$privKey);

// 生成公钥
$key_detail = openssl_pkey_get_details($res)['key'];
file_put_contents('./private.txt',$key_detail);

//需要加密的字符串
$data = 'A string that needs to be encrypted';

// 公钥加密
openssl_public_encrypt($data, $encrypted, $key_detail);

// 私钥解密
openssl_private_decrypt($encrypted, $decrypted, $privKey);

//输出解密的字符串
echo $decrypted;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值