PHP使用OPENSSL RSA加密解密数据
加密数据有很多种方法,今天我们来看一下OPENSSL RSA的加密办法。
1、首先得安装php的openssl扩展
php -m | grep openssl
执行以上命令,确保已经安装了openssl php扩展
2、接下来要安装Linux openssl
yum -y install openssl-devel
3、生成RSA公钥和私钥
3.1、生成私钥
openssl genrsa 1024 > rsa_private.key
#注意:1024是密钥的长度,如果密钥较长,相应加密后的密文也会较长
3.2、生成公钥
openssl rsa -in rsa_private.key -pubout > rsa_public.key
4、PHP操作OPENSSL RSA加解密代码演示
//私钥加密
echo '<hr/>openssl encrypt';
$rsa_prikey = file_get_contents('~/rsa_private.key');
openssl_private_encrypt('test', $crypted, $rsa_prikey);
//$crypted 存储了加密后的内容
$rsa_pubkey = file_get_contents('~/rsa_public.key');
echo '<hr/>',$rsa_pubkey;
echo '<hr/>',$crypted; //公钥解密
openssl_public_decrypt($crypted, $decrypted, $rsa_pubkey);
//$decrypted存储了解密后的内容
echo '<hr/>', $decrypted; //还有私钥解密
openssl_private_decrypt($crypted, $decrypted, $rsa_prikey);
echo '<hr/>', $decrypted; //还有公钥加密
openssl_public_encrypt('data here', $crypted, $rsa_pubkey);
5、使用场景
比如可以用在APP接口加密上使用,接口使用私钥将数据加密,APP中带有公钥文件,用公钥解密接口返回的加密数据
PHP使用OPENSSL RSA加密解密数据的更多相关文章
- 兼容javascript和C#的RSA加密解密算法,对web提交的数据进行加密传输
Web应用中往往涉及到敏感的数据,由于HTTP协议以明文的形式与服务器进行交互,因此可以通过截获请求的数据包进行分析来盗取有用的信息.虽然https可以对传输的数据进行加密,但是必须要申请证书(一般都 ...
- PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解
一.公钥加密假设一下,我找了两个数字,一个是1,一个是2.我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥. 我有一个文件,不能让别人看,我就用1加密了.别人找到了这个文 ...
- openssl evp RSA 加密解密
openssl evp RSA 加密解密 可以直接使用RSA.h 提供的接口 如下测试使用EVP提供的RSA接口 1. EVP提供的RSA 加密解密 主要接口: int EVP_PKEY_encryp ...
- OpenSSL 中 RSA 加密解密实现源代码分析
1.RSA 公钥和私钥的组成.以及加密和解密的公式: 2.模指数运算: 先做指数运算,再做模运算.如 5^3 mod 7 = 125 mod 7 = 6 3.RSA加密算法流程: 选择一对不同的.而且 ...
- iOS使用Security.framework进行RSA 加密解密签名和验证签名
iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...
- iOS常用加密之RSA加密解密
前言: iOS常用的加密有很多种,前两天在工作中遇到了RSA加密,现在把代吗分享出来. RSA基本原理 RSA使用"秘匙对"对数据进行加密解密.在加密解密数据前,需要先生成公钥(p ...
- RSA 加密解密使用实例
http://www.dtmao.cc/news_show_692109.shtml 本文不讨论RSA加密解密本身,只记录使用方法及遇到的坑,RSA原理及注意事项可在网上查找. 背景:公司的一个需求, ...
- Cryptopp iOS 使用 RSA加密解密和签名验证签名
Cryptopp 是一个c++写的功能完善的密码学工具,类似于openssl 官网:https://www.cryptopp.com 以下主要演示Cryptopp 在iOS上的RSA加密解密签名与验证 ...
- openssl rsa 加解密
<h4>1.openssl进行rsa加密解密</h4>首先介绍下命令台下openssl工具的简单使用:生成一个密钥:<pre lang="c" esc ...
随机推荐
- 关于DOM的一些操作 整理 积累
var chils= s.childNodes; //得到s的全部子节点 var par=s.parentNode; //得到s的父节点 var ns=s.nextSbiling; //获得 ...
- 窗体showModal
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- MSMQ
1.安装MSMQ 2.添加私有的队列 3.MSMQ可以发送的类型可以是任意类型,包括类 static string strServer = @"FormatName:Direct=TCP:1 ...
- 2016 Multi-University Training Contest 1
8/11 2016 Multi-University Training Contest 1 官方题解 老年选手历险记 最小生成树+线性期望 A Abandoned country(BH) 题意: 1. ...
- Spatial Transformer Networks(空间变换神经网络)
Reference:Spatial Transformer Networks [Google.DeepMind]Reference:[Theano源码,基于Lasagne] 闲扯:大数据不如小数据 这 ...
- Leetcode Simplify Path
Given an absolute path for a file (Unix-style), simplify it. For example,path = "/home/", ...
- ZeroMQ接口函数之 :zmq_curve_keypair - 生成一个新的CURVE 密钥对
ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq_curve_keypair zmq_curve_keypair(3) ØMQ Manual - ØMQ/4.1.0 ...
- Maya Plugin 编译Maya插件
Maya自身的功能就已经非常强大了,但是更棒的是它的扩展性非常强,提供API让用户自己来编写插件Plugin.Maya的插件主要是两种,一种是用C++编写的,后缀为".mll",另 ...
- http协议笔记
协议:双方/多方共同遵守的一个规范.类比生活中协议 理解: webservice=http协议+xml Rest =http协议+json 开始,客户端和其他服务器都是没有关系的,比如 ...
- Python环境安装
Windows: 1.Python安装包下载 可以去官网下载安装包:https://www.python.org/downloads/ 2.Python安装 默认安装路径:C:\python27:也可 ...