这是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. Zookeeper体系结构

    上面我们已经讨论了zookeeper在应用程序中的一些操作,以下我们须要理解一下服务端的工作的原理.client是怎样通过一个client的类库与服务端进行通信的,然后服务端又是怎样回应client的 ...

  2. 51-nod -1284 2 3 5 7的倍数

    1284 . 2 3 5 7的倍数 基准时间限制:1 秒 空间限制:65536 KB 分值: 5 给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数. 比如N = 10,仅仅有1不是2 3 ...

  3. 有什么springMVC+myBatis的书?

    最近在看MyBatis,把我最近看的东西给你整理一下吧. 书籍:深入浅出MyBatis技术原理与实战 下载地址:[免费]深入浅出MyBatis技术原理与实战.pdf-CSDN下载 MyBatis 相关 ...

  4. 【转】IOS中Json解析的四种方法

    原文网址:http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有 ...

  5. Redis List 命令技巧

    1.实现栈的功能(先进后出) lpush + lpop = stack > lpush mylist (integer) > lpop mylist " > lpop my ...

  6. 初探.net framework 下的异步多线程

    初探.net framework 下的异步多线程 目录 1.多线程的出现条件 2.Thread和ThreadPool的相关Api及用法 3.Task和Parallel的相关Api及用法 4.Async ...

  7. CSS简单入门

    - Java攻城狮学习路线 - 一. 什么是CSS CSS指层叠样式表(Cascading Style Sheets),定义如何显示HTML元素 二. CSS语法 /* 选择器 { 声明: 声明:}* ...

  8. mysql连接出现error node【1045】

    第一步:在my.ini下找到mysqlid.在后边添加skip-grant-tables 第二步:重新启动mysql服务 第三步:重新设置密码 第四步: 将skip-grant-tables删除掉,保 ...

  9. JavaScript中的数组创建

    JavaScript中的数组创建 数组是一个包含了对象或原始类型的有序集合.很难想象一个不使用数组的程序会是什么样. 以下是几种操作数组的方式: 初始化数组并设置初始值 通过索引访问数组元素 添加新元 ...

  10. python3遍历选中文件夹下的文件【GUI编程】

    功能介绍 如标题 使用截图 1.第一步:运行python程序 2.第二步:点击按钮选中文件夹 3.运行结束: 1. 显示选中文件夹路径 2. 遍历打印文件夹内文件 代码 import os #程序功能 ...