这是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:--
#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 简单实现的更多相关文章

  1. RSA简单实践

    RSA公钥文件解密密文的原理分析 前言 最近在学习 RSA 加解密过程中遇到一个这样的难题:假设已知 publickey 公钥文件和加密后的密文 flag ,如何对其密文进行解密,转换成明文~~ 分析 ...

  2. RSA算法学习

    package com.test.rsa; /* * 为了选择公钥和私钥,Bob必须执行如下步骤: * 1)选择两个大素数p和q.那么p和q应该多大呢?该值越大,RSA越难于破解,但是执行加密和解密所 ...

  3. 前后端API交互数据加密——AES与RSA混合加密完整实例

    前言 前段时间看到一篇文章讲如何保证API调用时数据的安全性(传送门:https://blog.csdn.net/ityouknow/article/details/80603617),文中讲到利用R ...

  4. 菜鸟 学注册机编写之 “RSA”

    测试环境  系统: xp sp3 调试器 :od 1.10 RSA简单介绍 选取两个别人不知道的大素数p, q. 公共模n = p*q 欧拉值φ(n) = (p-1)(q-1) 选取公匙(加密匙) e ...

  5. HTTP学习三:HTTPS

    HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...

  6. crypto必知必会

    crypto必知必会 最近参加了个ctf比赛,在i春秋,南邮方面刷了一些crypto密码学题目,从中也增长了不少知识,在此关于常见的密码学知识做个小总结! Base编码 Base编码中用的比较多的是b ...

  7. App安全

    经常做的网络参数加密解密,以及防止数据重放之外,还提到了防范反编译的风险,其实Apple算比较安全的了,反编译过来也就看到.h文件....但把代码混淆还是会比较好些. 一.iOS 中的网络加密 公司的 ...

  8. ios开发Base64编码以及加密相关学习

    一:.Base64补充 ```objc 1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只 ...

  9. HTTPS中的TLS

    1. SSL 与 TLS SSL:(Secure Socket Layer) 安全套接层,于 1994 年由网景公司设计,并于 1995 年发布了 3.0 版本TLS:(Transport Layer ...

随机推荐

  1. PHP统计所有字符在字符串中出现的次数

    <?php //统计字符串中出现的字符,出现次数 echo '<pre>'; $str = 'aaabbccqqwweedfghhjffffffffggggggggg';//字符串示 ...

  2. UVA11234 Expressions

    题目的意思实在是读不懂,又是把栈变成队列什么的.. 只是大体的意思就是把后缀表达式变一下.. 抛开意思,事实上就是依据输入建个树,然后倒序输出.. 拿第一个例子说明:大写代表操作符(+ - × /之类 ...

  3. luogu3197 [HNOI2008] 越狱

    题目大意 已知序列$P$满足$|P|=N$,(以下所有$i,i\in[1,N]$)$\forall i, P_i\in [1,M]$.求$|\{P|\exists i, P_i =P_{i+1}\}| ...

  4. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]

    Could not load file or assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31 ...

  5. Possible multiple enumeration of IEnumerable

    https://www.jetbrains.com/help/resharper/2016.1/PossibleMultipleEnumeration.html Consider the follow ...

  6. AIX的系统备份

    AIX克隆盘即AIX的rootvg的备用替换磁盘,用于保留AIX的原始状态,它可作为软件的升级后出现问题快速回退到原系统的备份手段,也可用于测试两个不同版本的AIX系统.系统可保留两块引导磁盘,而且都 ...

  7. [HTML] 条件注释判断浏览器

    <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]--><!--[if IE]> 所有的IE可识别 <![e ...

  8. Gym-101915A Printing Books 模拟

    题面 题意:给你N,X,   X表示这本书从X开始编号,每个X是几位数,计数器就加几, 然后问你如果从X,开始编号,计数器为N的时候,翻了几页,不能刚好为N输出-1. (例如,5 99,答案为2,因为 ...

  9. Wannafly挑战赛25 C 期望操作数 数学

    题目 题意:给你你一个数x和一个数q,x<=q,每一次可以等概率把x变成[x,q]中任意一个数,问变成q的步数的期望,输出对998244353取模,多组询问 题解:首先肯定的是,可以预处理,因为 ...

  10. C - Ilya and Sticks(贪心)

    Problem description In the evening, after the contest Ilya was bored, and he really felt like maximi ...