Heim >Backend-Entwicklung >PHP-Tutorial >支付宝怎么配置OpenSSL生成公钥

支付宝怎么配置OpenSSL生成公钥

PHPz
PHPznach vorne
2016-06-20 12:29:233102Durchsuche

本篇文章带大家配置支付宝支付服务,介绍一下支付宝开放平台配置RSA(SHA1)密钥、OpenSSL配置公钥私钥对的方法,希望对大家有所帮助!

进入到第一次配置支付宝支付服务了

配置支付宝服务,需要去支付宝的开放平台申请服务

需要设置一些参数

其中需要在后台设置配置RSA(SHA1)密钥(公钥(注意这个子读"yao"))

支付宝后台是这样提示的

使用SHA1withRsa,支付宝会用SHA1withRsa算法进行接口调用时的验签(不限制密钥长度)。使用支付宝密钥生成器或OpenSSL(第三方工具)生成密钥

由于我本地系统和远程系统是centos

所以我选择了 OpenSSL 来生成公钥

下面我们开始吧

第一步,查看是否安装了OpenSSL

1.1、如果已经正确安装,您可以输入openssl

看到如下界面,即表示已经安装

[likilone@MyCentOS temp]$ openssl
OpenSSL>

然后我们就可以运行命令创建我们的公钥和私钥

注意,我们创建的公钥和私钥就在我们当前的文件夹temp里面

1.2、如果没有安装,您可以yum安装

请看如下代码:

首先列出来可以安装的OpenSSL版本

[likilone@MyCentOS temp]$ yum list openssl*
已加载插件:fastestmirror, langpacks
https://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo/epel-7-x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
正在尝试其它镜像。
To address this issue please refer to the below knowledge base article 

https://access.redhat.com/articles/1320623

If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/

Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * elrepo: mirrors.tuna.tsinghua.edu.cn
 * epel: ftp.cuhk.edu.hk
 * extras: centos.ustc.edu.cn
 * updates: ftp.sjtu.edu.cn
已安装的软件包
openssl.x86_64                     1:1.0.1e-51.el7_2.5                  @updates
openssl-devel.x86_64               1:1.0.1e-51.el7_2.5                  @updates
openssl-libs.x86_64                1:1.0.1e-51.el7_2.5                  @updates
openssl098e.x86_64                 0.9.8e-29.el7.centos.3               @updates
可安装的软件包
openssl-devel.i686                 1:1.0.1e-51.el7_2.5                  updates 
openssl-libs.i686                  1:1.0.1e-51.el7_2.5                  updates 
openssl-perl.x86_64                1:1.0.1e-51.el7_2.5                  updates 
openssl-static.i686                1:1.0.1e-51.el7_2.5                  updates 
openssl-static.x86_64              1:1.0.1e-51.el7_2.5                  updates 
openssl098e.i686                   0.9.8e-29.el7.centos.3               updates 
[likilone@MyCentOS temp]$

以上信息显示了我安装的openssl版本

如果你没有安装,可以直接yum安装即可

yum install XXX

第二步,创建私钥和公钥对

私钥,顾名思义,就是我们自己的钥匙

运行如下代码,显示结果就表示生成成功

OpenSSL> genrsa -out rsa_privte.pem 1024    
Generating RSA private key, 1024 bit long modulus
.........................................................++++++
.....................................++++++
e is 65537 (0x10001)

上面生成的私钥里面包含了公钥的

所以我们可以通过这个私钥获得一个公钥,就是从私钥里提取公钥,代码如下

OpenSSL> rsa -in rsa_privte.pem -pubout -out public.pem
writing RSA key

第三步,如何应用

上面我们已经创建好了公钥和私钥

我们用文本编辑器打开公钥,将里面的代码复制到支付宝开放平台要求我们输入公钥那里,如下图所示

支付宝rsa公钥配置
支付宝rsa公钥配置

自此我们就配置好了,现在我们来测试一个简单的文本

看看公钥和私钥是如何工作的

首先我们新建一个文本文件 1.txt

里面的内容是 hello rsa

我们用公钥对这个文件进行加密,

OpenSSL> rsautl -encrypt -in 1.txt -inkey public.pem -pubin -out 2.en

用私钥进行解密

OpenSSL> rsautl -decrypt -in 2.en -inkey rsa_privte.pem -out 2.de

上面的一些参数说明

  • encrypt:加密

  • decrypt:解密

  • -in:待解密或加密的文件

  • -inkey:指定钥匙

  • -out:输出文件

需要注意的是,如果用私钥进行加密,那么解密的时候,就必须是私钥,如果是公钥进行加密,解密的时候就是私钥去解密,大家可以测试下

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen