• 非对称加密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打开浏览器的控制台的NetworkResponse,就能看到我们所需要的,复制进行保存
  • 私钥
-----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非对称加密秘钥生成相关推荐

  1. RSA非对称加密和解密(同时生成密钥)

    RSA非对称加密和解密(同时生成密钥) 准备jar包 bcprov-jdk16-1.46.jar commons-codec-1.15.jar 获取jar地址:https://mvnrepositor ...

  2. Springboot+RSA非对称加密

    这是百度百科对(对称加密丶非对称加密)的解释: (1)对称加密算法在加密和解密时使用的是同一个秘钥. (2)非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称 ...

  3. 微信小程序RSA非对称加密。

    因公司做的产品为金融项目,所以对数据安全性有很高要求,因为项目中的数据都会通过3DES 对称加密,和RSA非对称加密进行数据传输. 在这里先简单介绍一下什么是对称加密和非对称加密 对称加密:对称加密采 ...

  4. 密码算法原理与分析:RSA安全与秘钥基础设施

    本文转自网络文章,内容均为非盈利,版权归原作者所有. 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除. 原文作者:evilpan 原文地址:RSA安全与秘钥基础设施 目录 前言 RSA原理 秘钥 ...

  5. 利用RSA非对称加密对文本信息进行加密

    利用RSA非对称加密对文本信息进行加密 非对称加密 非对称加密即创建一对密钥对,分为公钥和私钥. 公钥即大家都能看到的秘钥,私钥即自己用的秘钥,rsa加密后密码的安全性一般取决于用户对私钥的保管. 公 ...

  6. RSA安全与秘钥基础设施

    之前写过一篇对称加密与攻击案例分析,而对于非对称加密,虽然接触的时间不短了,但一直没有很系统的记录过.因此趁着国庆家里蹲的五天长假,就来好好回顾总结一下. 前言 其实从加密的定语就能看出,对称加密表示 ...

  7. Python代码实现MD5、AES对称加密和RSA非对称加密以及OpenSSl实践

    1.MD5加密算法 1.1 MD5加密的特点 不可逆运算 对不同的数据加密的结果是定长的32位和16位字符(不管文件多大都一样) 对相同的数据加密,得到的结果是一样的(也就是复制). 抗修改性 :信息 ...

  8. JSON 接口如何实现 RSA 非对称加密与签名

    代码地址如下: http://www.demodashi.com/demo/14000.html 一.概述 1. 数字签名的作用:保证数据完整性,机密性和发送方角色的不可抵赖性,加密与签字结合时,两套 ...

  9. php利用openssl实现RSA非对称加密签名

    来源:http://www.webiji.com/archives/412 php利用openssl实现RSA非对称加密签名 1. 先用php生成一对公钥和私钥 $res = openssl_pkey ...

最新文章

  1. 郭振宇计算机领域,数学实验教学中心简介
  2. 实时音视频聊天中超低延迟架构的思考与技术实践
  3. q函数表格怎么看_会计表格函数玩不会?超实用会计表格函数公式大全,财务人都在用...
  4. 自动化测试工具的选择
  5. php csv,php csv操作类代码
  6. 使用Spyder生成动态二维码遇到的问题 ImportError 、ValueError 、OSError
  7. OceanBase架构浅析(一)
  8. JVM调优:图解对象内存分配过程
  9. 预训练生成模型:结合VAE与BERT/GPT-2提高文本生成效果
  10. http://blog.chinaunix.net/uid-20577907-id-3519578.html
  11. 《深度学习》————NN网络是否可以拟合任何一种函数
  12. java语言函数存储在哪个包_java专项联系题
  13. [postgresql]postgresql的锁介绍
  14. 沙箱环境和正式环境【PayPal接入(java)】【IPN通知问题】项目实战干货总结记录!
  15. 计算机怎么打开网络共享,如何开启Window7的媒体流共享(开启电脑 DLNA 共享)...
  16. Laplacian eigenmap 拉普拉斯特征映射
  17. 坐标系统概念(转载)
  18. 计算机桌面上的软件是内存上吗,电脑软件运行提示内存不足,占内存小的游戏-...
  19. 亲爱的老狼-清除浮动float的5种方法
  20. chrome浏览器手机版怎么设置中文

热门文章

  1. Java程序员面试笔试宝典-Java Web(二)
  2. DataReader和DataSet的异同
  3. Cannot find JRE '1.8'. You can specify JRE to run maven goals in Settings
  4. 概率论基础—什么是概率?
  5. AutoHotkey[转载]
  6. SpringBoot日志实现
  7. 平分肥宅快乐水之辗转相除法
  8. Word通配符查找文字修改格式
  9. mini batch详解
  10. 一把王者的时间,学会generate语句【Verilog高级教程】