php中rsa生成公私钥和加解密

注意:php使用RSA时需要开启openssl扩展

生成公私钥

//创建公私钥

$res = openssl_pkey_new();

//获取私钥

openssl_pkey_export($res, $private_key);

//获取公钥

$public_key = openssl_pkey_get_details($res)[‘key‘];

//组合rsa

$rsa = [

‘public_key‘ => $public_key,

‘private_key‘ => $private_key,

];

echo "

";

var_dump($rsa);

exit;

结果:

rsa加解密

这里把上面获取的公私钥分别保存到变量 $public_key,$private_key

公钥加密,私钥解密

/**

* 公钥加密

*/

$data = ‘rsa加密解密‘;

//解析公钥

$res = openssl_pkey_get_public($public_key);

//使用公钥加密数据

openssl_public_encrypt($data, $crypted, $res);

echo "

";

var_dump($crypted);

exit;

加密后结果:

/**

* 私钥解密

*/

//解析私钥

$res = openssl_pkey_get_private($private_key);

//使用私钥解密数据

openssl_private_decrypt($crypted, $decrypted, $res);

echo "

";

var_dump($decrypted);

exit;

解密后结果:

私钥加密,公钥解密

/**

* 私钥加密

*/

$data = ‘rsa加密解密‘;

//解析私钥

$res = openssl_pkey_get_private($private_key);

//使用私钥加密

openssl_private_encrypt($data, $crypted, $res);

/**

* 公钥解密

*/

//解析公钥

$res = openssl_pkey_get_public($public_key);

openssl_public_decrypt($data, $decrypted, $res);

echo "

";

var_dump($decrypted);

exit;

结果和公钥加密,私钥解密差不多,这里就不截图了

使用场景

私钥加密,公钥解密: 用于签名

公钥加密,私钥解密: 用于加解密

原文:https://www.cnblogs.com/trblog/p/13149931.html

rsa生成公私钥php,php中rsa生成公私钥和加解密相关推荐

  1. 中职生计算机系自我推荐作文,中职生自我鉴定

    短短的两年中职生活即将离去,在箐箐校园中,老师的教诲,同学们的友爱以及各方面的熏陶.使我获得许多知识.懂得许多道理.收获很多,本人勤奋好学.勤学苦练.努力学习文化知识,专业技能.遵守中学生行为规范. ...

  2. linux rsa登录改密码登录_LINUX中RSA认证登录SSH(不需要输入密码登录)2种方法

    方法一, 有的时候经常需要登录ssh,每次都需要输入密码,会比较繁琐.所以设置了一下使用RSA公钥认证的方式登录Linux. 首先需要在服务器端设置/etc/ssh/sshd_config # vim ...

  3. 如何上好中职生的计算机课,如何上好中职生计算机基础课.doc

    如何上好中职生计算机基础课 如何上好中职生计算机基础课 摘 要:计算机基础课虽不是专业课,但中职生一定要能较为熟练的使用计算机,所以,上好这门课很重要.计算机在我们的生活中不只是越来越普及的状态,而是 ...

  4. linux 公私钥生成,[c++,openssl,RSA] linux下编程实现生成公私钥对_1

    在这篇文章中简单介绍一下如何编译安装和使用第三方库 OpenSSL ,并在 OpenSSL 提供的 API 的基础上生成存放 RSA 类型的公密钥对的文件. 什么是密钥 ? 密钥根据加密密钥和解密密钥 ...

  5. ras私钥c#转java_C#RSA对接JAVA中RSA方式代码实例

    C#中通过FromXmlString属性加载的是XML形式,而JAVA中用到的是解析后的PEM格式的字符串,总之读取证书中信息无非是转换方式问题 /// /// c# 使用 java 的公钥进行rsa ...

  6. 非对称加密算法之RSA介绍及OpenSSL中RSA常用函数使用举例

    RSA算法,在1977年由Ron Rivest.Adi Shamirh和LenAdleman,在美国的麻省理工学院开发完成.这个算法的名字,来源于三位开发者的名字.RSA已经成为公钥数据加密标准. R ...

  7. java的rsa作用_java 中RSA的方式实现非对称加密的实例

    java 中rsa的方式实现非对称加密的实例 rsa通俗理解: 你只要去想:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密:同理,既然是签名,那肯 ...

  8. [crypto]-52-python3中rsa(签名验签加密解密)aes(ecb cbc ctr)hmac的使用,以及unittest测试用

    环境: 在ubuntu14.04下,记得安装:sudo pip3 install pycrypto 代码示例1: =========================== import base64 f ...

  9. 叙述无保密机制的rsa签名过程_安全系列之——RSA的公钥私钥有多少人能分的清楚?RSA的签名验签与加密解密如何使用公私钥?...

    在对接很多的互联网公司的开发平台时,这些互联网公司未来自身平台的安全,都会需要调用方签名确认调用方的身份是合法的,同时未来信息网络传输的安全可能还需要加密解密.比如对接支付宝.微信开放平台时,需要配置 ...

最新文章

  1. 【Redis】Linux下Redis安装与redis-desktop-manager使用(无法连接Redis服务器解决方法)...
  2. SPI、I2C、UART 三种串行总线对比介绍
  3. oracle.01081 cannot,ORA-01081: cannot start already-running ORACLE - shut it down first
  4. python内置数据类型与特点_初学Python之内置数据类型一
  5. Code-First Development with Entity Framework 4
  6. C/C++访问PostgreSQL数据库
  7. JAVA-上转型对象,下转型对象
  8. 【2030】排队打水问题
  9. HDU-1150 Machine Schedule 二分图匹配
  10. 获取电脑的唯一识别码_无锡电脑办公,office软件培训,学会为止
  11. IDEA界面SVN回滚到历史指定版本
  12. Unity Graph View打造图形化对话编辑系统(三)
  13. 后缀为 axd 与 ashx 的文件有什么区别
  14. Jetpack:Room超详细使用踩坑指南!
  15. 牛逼哄哄的数据库连接池,底层原理是个啥?
  16. 使用串口转USB连接树莓派
  17. Spring常用设计模式--简单工厂模式
  18. git fatal: schannel: next InitializeSecurityContext failed: SEC E CERT EXPIRED (0x80090328)
  19. 如何写一个vscode插件
  20. Keil调试时候提示 The window position data for this project is inconsistent解决方法

热门文章

  1. 算法与程序设计(四):贪心算法
  2. 转行学python 数据分析统计服_转行数据分析,你准备好了吗?
  3. 《超级时间整理术》晨读笔记
  4. cdrx4自动排版步骤_当代大学生难题:又又又又要排版论文了
  5. Windows环境下给oracle打补丁详细教程
  6. DNS枚举工具之DNSenum
  7. FME中的常用kml转换器介绍(一)
  8. 练手小项目(5)安全卫士——手机加速
  9. LTE 的一些基础知识 【转】
  10. 二十碳五烯酸和二十二碳六烯酸(EPA和DHA)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告