php RSA非对称加密秘钥生成
- 非对称加密RSA在项目中比较常用,需要公钥和私钥,这里就进行一对钥匙的生成
RSA公钥私钥生成
- 载入拓展包
composer require phpseclib/phpseclib
- 项目引入
<?php
require __DIR__ . '/vendor/autoload.php';
use phpseclib\Crypt\RSA;
$rsa = new RSA();
extract($rsa->createKey());
echo $privatekey;
echo $publickey;
- F12打开浏览器的控制台的
Network
的Response
,就能看到我们所需要的,复制进行保存
- 私钥
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDfI+2o+gQWOEkgtUZ+K9IZVzfJtHT1qOWPD7rzewTIwn8UcrPC
bWnTYROE/wcGYtpdlpNdhaU3r3Dqn4g62GlZ9BPAsUORaa3X2GI0bwhtFgGlWYls
eoHyscCeVMUIHs/xalexIa5UDctBG6MS39xroepCVF1JLLJAcCbNfMn4ZwIDAQAB
AoGAXXY1A0PFFnF438RNxGciVw7bBRcarhKSJDvYeEccl+IvTCdG97bQToMoo9oV
3SzmfbCmBNQHga1wRDWR3+PpK8W0P0n6sQwZDka2DhWJL3PBSYzcUGqR/k8f4U75
eGYa/niqCl2XoNG7GghjPkUQmfFsMowS18jqmjszu3U7rHECQQD8jcI2vIS8ko0z
qtwqtWziJGusBpdsAL281BxTjv3uGK9WtByqJJCo5FsnV2kNCKlYrGyj7xTFYbtG
flSwJvgDAkEA4i9roOnqKZb4WkECLDH6NN1Ob6l3rQ/2OCTtJy3zXTTuOFdut/Gi
CBI6sgzRfmGK8fLMMVc+y4dT9dfJPKHKzQJBALDlWjOcuBydSen2s1/2091SRVip
BUbQ/hVVPMIKVjJ/d9DzN2C1W93wlShpQVuvxW4m17G7tIDMg7BMrGT15qECQQCb
MyCt7HORkBbfjyXXf3+I0KXmdqk4pfAz/BqCPMR1m0EuhcfiDbo5wZBm5ebFylaV
yB0WaiAbdcNFuIhLw1StAkBzv2l9KaadYGWyfkGnrMMKrvPWTd3IyqsUqS+tggNs
uFsNSLaz+cUD0aYbkKjhGSlPm4rk5EN6J7ZxOOsGDmSt
-----END RSA PRIVATE KEY-----
- 公钥
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDfI+2o+gQWOEkgtUZ+K9IZVzfJ
tHT1qOWPD7rzewTIwn8UcrPCbWnTYROE/wcGYtpdlpNdhaU3r3Dqn4g62GlZ9BPA
sUORaa3X2GI0bwhtFgGlWYlseoHyscCeVMUIHs/xalexIa5UDctBG6MS39xroepC
VF1JLLJAcCbNfMn4ZwIDAQAB
-----END PUBLIC KEY-----
RAS验证
- 这里我们利用jwt进行验证
composer require firebase/php-jwt
<?php
use \Firebase\JWT\JWT;$privateKey = <<<EOD
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDfI+2o+gQWOEkgtUZ+K9IZVzfJtHT1qOWPD7rzewTIwn8UcrPC
bWnTYROE/wcGYtpdlpNdhaU3r3Dqn4g62GlZ9BPAsUORaa3X2GI0bwhtFgGlWYls
eoHyscCeVMUIHs/xalexIa5UDctBG6MS39xroepCVF1JLLJAcCbNfMn4ZwIDAQAB
AoGAXXY1A0PFFnF438RNxGciVw7bBRcarhKSJDvYeEccl+IvTCdG97bQToMoo9oV
3SzmfbCmBNQHga1wRDWR3+PpK8W0P0n6sQwZDka2DhWJL3PBSYzcUGqR/k8f4U75
eGYa/niqCl2XoNG7GghjPkUQmfFsMowS18jqmjszu3U7rHECQQD8jcI2vIS8ko0z
qtwqtWziJGusBpdsAL281BxTjv3uGK9WtByqJJCo5FsnV2kNCKlYrGyj7xTFYbtG
flSwJvgDAkEA4i9roOnqKZb4WkECLDH6NN1Ob6l3rQ/2OCTtJy3zXTTuOFdut/Gi
CBI6sgzRfmGK8fLMMVc+y4dT9dfJPKHKzQJBALDlWjOcuBydSen2s1/2091SRVip
BUbQ/hVVPMIKVjJ/d9DzN2C1W93wlShpQVuvxW4m17G7tIDMg7BMrGT15qECQQCb
MyCt7HORkBbfjyXXf3+I0KXmdqk4pfAz/BqCPMR1m0EuhcfiDbo5wZBm5ebFylaV
yB0WaiAbdcNFuIhLw1StAkBzv2l9KaadYGWyfkGnrMMKrvPWTd3IyqsUqS+tggNs
uFsNSLaz+cUD0aYbkKjhGSlPm4rk5EN6J7ZxOOsGDmSt
-----END RSA PRIVATE KEY-----
EOD;$publicKey = <<<EOD
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDfI+2o+gQWOEkgtUZ+K9IZVzfJ
tHT1qOWPD7rzewTIwn8UcrPCbWnTYROE/wcGYtpdlpNdhaU3r3Dqn4g62GlZ9BPA
sUORaa3X2GI0bwhtFgGlWYlseoHyscCeVMUIHs/xalexIa5UDctBG6MS39xroepC
VF1JLLJAcCbNfMn4ZwIDAQAB
-----END PUBLIC KEY-----
EOD;$payload = array("iss" => "example.org","aud" => "example.com","iat" => 1356999524,"nbf" => 1357000000
);$jwt = JWT::encode($payload, $privateKey, 'RS256');
echo "Encode:\n" . print_r($jwt, true) . "\n";$decoded = JWT::decode($jwt, $publicKey, array('RS256'));$decoded_array = (array) $decoded;
echo "Decode:\n" . print_r($decoded_array, true) . "\n";
?>
- 在jwt中能够正常的加密解密证明我们RSA密匙已经正确的生成了
php RSA非对称加密秘钥生成相关推荐
- RSA非对称加密和解密(同时生成密钥)
RSA非对称加密和解密(同时生成密钥) 准备jar包 bcprov-jdk16-1.46.jar commons-codec-1.15.jar 获取jar地址:https://mvnrepositor ...
- Springboot+RSA非对称加密
这是百度百科对(对称加密丶非对称加密)的解释: (1)对称加密算法在加密和解密时使用的是同一个秘钥. (2)非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称 ...
- 微信小程序RSA非对称加密。
因公司做的产品为金融项目,所以对数据安全性有很高要求,因为项目中的数据都会通过3DES 对称加密,和RSA非对称加密进行数据传输. 在这里先简单介绍一下什么是对称加密和非对称加密 对称加密:对称加密采 ...
- 密码算法原理与分析:RSA安全与秘钥基础设施
本文转自网络文章,内容均为非盈利,版权归原作者所有. 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除. 原文作者:evilpan 原文地址:RSA安全与秘钥基础设施 目录 前言 RSA原理 秘钥 ...
- 利用RSA非对称加密对文本信息进行加密
利用RSA非对称加密对文本信息进行加密 非对称加密 非对称加密即创建一对密钥对,分为公钥和私钥. 公钥即大家都能看到的秘钥,私钥即自己用的秘钥,rsa加密后密码的安全性一般取决于用户对私钥的保管. 公 ...
- RSA安全与秘钥基础设施
之前写过一篇对称加密与攻击案例分析,而对于非对称加密,虽然接触的时间不短了,但一直没有很系统的记录过.因此趁着国庆家里蹲的五天长假,就来好好回顾总结一下. 前言 其实从加密的定语就能看出,对称加密表示 ...
- Python代码实现MD5、AES对称加密和RSA非对称加密以及OpenSSl实践
1.MD5加密算法 1.1 MD5加密的特点 不可逆运算 对不同的数据加密的结果是定长的32位和16位字符(不管文件多大都一样) 对相同的数据加密,得到的结果是一样的(也就是复制). 抗修改性 :信息 ...
- JSON 接口如何实现 RSA 非对称加密与签名
代码地址如下: http://www.demodashi.com/demo/14000.html 一.概述 1. 数字签名的作用:保证数据完整性,机密性和发送方角色的不可抵赖性,加密与签字结合时,两套 ...
- php利用openssl实现RSA非对称加密签名
来源:http://www.webiji.com/archives/412 php利用openssl实现RSA非对称加密签名 1. 先用php生成一对公钥和私钥 $res = openssl_pkey ...
最新文章
- 郭振宇计算机领域,数学实验教学中心简介
- 实时音视频聊天中超低延迟架构的思考与技术实践
- q函数表格怎么看_会计表格函数玩不会?超实用会计表格函数公式大全,财务人都在用...
- 自动化测试工具的选择
- php csv,php csv操作类代码
- 使用Spyder生成动态二维码遇到的问题 ImportError 、ValueError 、OSError
- OceanBase架构浅析(一)
- JVM调优:图解对象内存分配过程
- 预训练生成模型:结合VAE与BERT/GPT-2提高文本生成效果
- http://blog.chinaunix.net/uid-20577907-id-3519578.html
- 《深度学习》————NN网络是否可以拟合任何一种函数
- java语言函数存储在哪个包_java专项联系题
- [postgresql]postgresql的锁介绍
- 沙箱环境和正式环境【PayPal接入(java)】【IPN通知问题】项目实战干货总结记录!
- 计算机怎么打开网络共享,如何开启Window7的媒体流共享(开启电脑 DLNA 共享)...
- Laplacian eigenmap 拉普拉斯特征映射
- 坐标系统概念(转载)
- 计算机桌面上的软件是内存上吗,电脑软件运行提示内存不足,占内存小的游戏-...
- 亲爱的老狼-清除浮动float的5种方法
- chrome浏览器手机版怎么设置中文