首页 后端开发 PHP问题 php rsa如何实现

php rsa如何实现

Jul 31, 2020 am 10:08 AM
rsa

php rsa实现的方法:首先创建“rsa_private_key.pem”和“rsa_public_key.pem”;然后判断私钥以及公钥是否是可用的;接着获取要加密的数据;最后通过base64编码转换加密后的特殊字符即可。

php rsa如何实现

推荐:《PHP视频教程

php RSA 简单实现

这是rsa_private_key.pem

-----BEGIN PRIVATE KEY----- 
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCxsv3yAPRvIn2z 
j5zZcFCA6qnFUVjyRDNbQA2ni1vcnTlSjP9i0FNJgpZkRaDZ0PprH8t10mXnWtVd 
9ZujztmHYWqETgGMGkq9fOou2/naFDXXUvtz2uhcUKCUYQUNXzfJPidfjmXe01OH 
eY8iN1X+GFo4LhumXgFIYsfBY8SKjeXgdiTl1Jhk+m+e27qRg0tD/kBVQ5vFmZmS 
8g1QWU8RCAYi3N1UicVucLmjg3ORXkZ2jMB7DTQET8i2loGbTqpYzV5d3Ka0D8BS 
S7SBAdaipzU4RugaqveOAd2vCXfDtf9VWvdHPTN1OxEsYaJaKAZTYt/pK61wQ0BN 
7dJUfSBTAgMBAAECggEAGRNJAn1gAM69Ljl1yLkwowB6NH3mL0mwdY/0XVAtBlSp 
YhzDbQ44soba8gthR1tV+wfhjh7CgoMu2LNv4w2tZI06mrDnRv3uzg5yfWpNN5ji 
gCAVm6OoZl56SnXmYJyvIpbCt5lAhtELWHKu4AUu/UwybvsSq8dYJv7JcWDCu0pO 
RqjRpTmL3jo3Yppw3DGFYhNGOFdurjJdFWgv7YPcSIfWokn4RBUmTEzeSWZTsnrL 
1qsjT6Sc8DCeVJeSGjYnMnqKgRDqIxy4tMM4J6Ris32xk5a31XHGVouesI6ZQ/LZ 
kDhbietYtF8Y8orx3L2wHPhCgzTXuxnwFbLfw7x2AQKBgQDrwzkWodq6U1y8drv8 
HbM0Z16Ed8zXocg3YeADYtO6An7LOhTQZGtN+B2xUi3rY0YvHQB2mKlxkesKJQFk 
wylQibFLNrzDPRLXkIIUtmMx3CeEJdwaeOWZikCBK0WPLLI6bekea+jLfhYvgBeJ 
plwFhy9qqiUMGxmYKqZioKERKwKBgQDA89oOwzksP4KG9EDdtxGYiKzKmjUFiMWO 
RGmWK93kb9yFCYoxwMyvOnG+LcYcT1qS4VPDYpz9OHC+bKhqTbsDpW2nNIngQMNy 
dbhvqCsznb2O7sFL923J2oLEQruqEc6wcgVzz5+gqk4lZG5K+x4HJW+1JnZh/6K0 
GzmOFISJeQKBgD+rmmhNT8fQKZRQMJZ24uW9IN5/iBeX/n1OdnQTpYBvmhSCXAqn 
g/8ricFQo0wVpGem2nAs7F3afXJg6g5vUmIIvZPFdZb4kHUc9rRnSUS24wkiPF39 
1mvv1VnM+N0gwgVbl4B6vgTuyUkMu86V2fY4OwsAZj7ttqzMn+C05qq/AoGAaFy8 
iZWP+93SBJph50nYS49JHkAwA3FJoTxhe6b4WlEijhZt16E3VGOhF8L8T12gWKdl 
Pd29mbyIRobQxMaMK1mzqGdjV5bP373KZyInU8CywXdjt2n5yN7WMb8Cb+c3yvmw 
90XKSgUzRUg/23BdenIGLI3EJBc3coDzLWTtlskCgYAEpYvVasV6Xy42zJyIxUeJ 
Jqbjm+MQkGU7Q+yLa6+1Ylt51sqIS8Mf8lp4PYYN7GpcFYKVfHIXCZDru1IyfQut 
OSWR0pAsgQn7haMRVRjGvzjfinLy+K1llPkpafYj7rWu+z50sIr2bnuGZAGgqVt8 
9H+p1jGHtXrt2SWVAIpyWQ== 
-----END PRIVATE KEY-----
登录后复制

这是rsa_public_key.pem

-----BEGIN PUBLIC KEY----- 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsbL98gD0byJ9s4+c2XBQ 
gOqpxVFY8kQzW0ANp4tb3J05Uoz/YtBTSYKWZEWg2dD6ax/LddJl51rVXfWbo87Z 
h2FqhE4BjBpKvXzqLtv52hQ111L7c9roXFCglGEFDV83yT4nX45l3tNTh3mPIjdV 
/hhaOC4bpl4BSGLHwWPEio3l4HYk5dSYZPpvntu6kYNLQ/5AVUObxZmZkvINUFlP 
EQgGItzdVInFbnC5o4NzkV5GdozAew00BE/ItpaBm06qWM1eXdymtA/AUku0gQHW 
oqc1OEboGqr3jgHdrwl3w7X/VVr3Rz0zdTsRLGGiWigGU2Lf6SutcENATe3SVH0g 
UwIDAQAB 
-----END PUBLIC KEY-----
登录后复制

下面只需要加载即可

<?php
#author:zk
#data:2017-09-11
#note:php rsa secret
$public_key = file_get_contents('./rsa_public_key.pem');
$private_key = file_get_contents('./rsa_private_key.pem');
//这个函数可用来判断私钥是否是可用的
$private_key = openssl_pkey_get_private($private_key);
//这个函数可用来判断公钥是否是可用的
$public_key = openssl_pkey_get_public($public_key);
//要加密的数据
$data = "这是测试";
echo '加密的数据:'.$data.'<br>';
//私钥加密后的数据
openssl_private_encrypt($data,$encrypted,$private_key);
//加密后的内容通常含有特殊字符,需要base64编码转换下
$encrypted = base64_encode($encrypted);
echo "私钥加密后的数据:".$encrypted.'<br>';  
//公钥解密  
openssl_public_decrypt(base64_decode($encrypted), $decrypted, $public_key);
echo "公钥解密后的数据:".$decrypted.'<br>';  
  
//----相反操作。公钥加密 
openssl_public_encrypt($data, $encrypted, $public_key);
$encrypted = base64_encode($encrypted);  
echo "公钥加密后的数据:".$encrypted.'<br>';
  
openssl_private_decrypt(base64_decode($encrypted), $decrypted, $private_key);//私钥解密  
echo "私钥解密后的数据:".$decrypted.'<br>';
登录后复制

以上是php rsa如何实现的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP数组去重有哪些最佳实践 PHP数组去重有哪些最佳实践 Mar 03, 2025 pm 04:41 PM

PHP数组去重有哪些最佳实践

PHP数组去重可以利用键名唯一性吗 PHP数组去重可以利用键名唯一性吗 Mar 03, 2025 pm 04:51 PM

PHP数组去重可以利用键名唯一性吗

最新的PHP编码标准和最佳实践是什么? 最新的PHP编码标准和最佳实践是什么? Mar 10, 2025 pm 06:16 PM

最新的PHP编码标准和最佳实践是什么?

我如何处理PHP扩展和PECL? 我如何处理PHP扩展和PECL? Mar 10, 2025 pm 06:12 PM

我如何处理PHP扩展和PECL?

如何在PHP中实现消息队列(RabbitMQ,REDIS)? 如何在PHP中实现消息队列(RabbitMQ,REDIS)? Mar 10, 2025 pm 06:15 PM

如何在PHP中实现消息队列(RabbitMQ,REDIS)?

PHP数组去重需要考虑性能损耗吗 PHP数组去重需要考虑性能损耗吗 Mar 03, 2025 pm 04:47 PM

PHP数组去重需要考虑性能损耗吗

PHP数组去重有哪些优化技巧 PHP数组去重有哪些优化技巧 Mar 03, 2025 pm 04:50 PM

PHP数组去重有哪些优化技巧

如何使用反射分析和操纵PHP代码? 如何使用反射分析和操纵PHP代码? Mar 10, 2025 pm 06:12 PM

如何使用反射分析和操纵PHP代码?

See all articles