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

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

需要设置一些参数

其中需要在后台设置配置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.0.1e-.el7_2. @updates
openssl-devel.x86_64 :1.0.1e-.el7_2. @updates
openssl-libs.x86_64 :1.0.1e-.el7_2. @updates
openssl098e.x86_64 0.9.8e-.el7.centos. @updates
可安装的软件包
openssl-devel.i686 :1.0.1e-.el7_2. updates
openssl-libs.i686 :1.0.1e-.el7_2. updates
openssl-perl.x86_64 :1.0.1e-.el7_2. updates
openssl-static.i686 :1.0.1e-.el7_2. updates
openssl-static.x86_64 :1.0.1e-.el7_2. updates
openssl098e.i686 0.9.8e-.el7.centos. updates
[likilone@MyCentOS temp]$

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

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

yum install XXX

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

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

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

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

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

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

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

第三步,如何应用

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

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

支付宝rsa公钥配置

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

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

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

里面的内容是 hello rsa

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

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

用私钥进行解密

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

上面的一些参数说明

encrypt    加密

decrypt    解密

-in        待解密或加密的文件

-inkey     指定钥匙

-out        输出文件

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

转:http://www.028888.net/archives/2016_08_1549.html

支付宝开放平台 配置RSA(SHA1)密钥 OpenSSL配置公钥私钥对的更多相关文章

  1. 支付宝开放平台--网页&移动应用(一)

    前提是先在支付宝上签约自己需要的支付宝功能,然后支付宝开放平台才能设置你需要的功能 一:支付宝开放平台登录 登录进入支付宝开放平台 二:根据自己的需求创建应用(我是用的网页&移动应用) 三:点 ...

  2. 公共错误码 - 支付宝开放平台 https://opendocs.alipay.com/open/common/105806

    公共错误码 - 支付宝开放平台 https://opendocs.alipay.com/open/common/105806

  3. .net core中使用openssl的公钥私钥进行加解密

    这篇博文分享的是 C#中使用OpenSSL的公钥加密/私钥解密 一文中的解决方法在 .net core 中的改进.之前的博文针对的是 .NET Framework ,加解密用的是 RSACryptoS ...

  4. 用 openSSL 生成 公钥 私钥

    支付宝app接口需要 RSA加密通讯 https://doc.open.alipay.com/doc2/detail?treeId=58&articleId=103242&docTyp ...

  5. Java中使用OpenSSL生成公钥私钥进行数据加解密

    当前使用的是Linux系统,已经安装OpenSSL软件包. 一.使用OpenSSL来生成私钥和公钥1.执行命令openssl version -a 验证机器上已经安装openssl $ openssl ...

  6. OpenSSL与公钥私钥证书签名的千丝万缕

    导语 人对任何事物的认识都是阶段性的,从无知到知晓,从懵懂到半知半解,从误解到将信将疑,从晕头转向到下定决心吃透. 介绍 OpenSSL是一个强大的命令行工具,它可以用来处理许多种跟PKI(Publi ...

  7. WP8.1 RSA 加解密实例(导入公钥私钥)

    因项目上需要用到,之前在WP8.0的环境上调试通过,现在在开发8.1时发现已不支持原来的加密库,所以无法使用以前的方法,不得已,去寻找windows命名空间下RSA的加解密方法,经过几天的尝试,将解决 ...

  8. RSA不对称加密和公钥 私钥

    理论上只要有加密的规则 基本都是可以解密的 但是如果解密需要消耗的时间过长 比如1000年 解密过后已经没什么意义了 此时可认为这种算法不能被破解 也就是说此加密可信 MD5 是一种单向操作 加密后不 ...

  9. OpenSSL生成公钥私钥***

    证书标准 X.509 - 这是一种证书标准,主要定义了证书中应该包含哪些内容.其详情可以参考RFC5280,SSL使用的就是这种证书标准. 编码格式 同样的X.509证书,可能有不同的编码格式,目前有 ...

随机推荐

  1. Laravel5.1忽略Csrf验证的方法

    在/App/Http/middleware/VerifyCsrfToken.php 文件的protected $except里面加入路由地址

  2. HDU 6271 Master of Connected Component(2017 CCPC 杭州 H题,树分块 + 并查集的撤销)

    题目链接  2017 CCPC Hangzhou Problem H 思路:对树进行分块.把第一棵树分成$\sqrt{n}$块,第二棵树也分成$\sqrt{n}$块.    分块的时候满足每个块是一个 ...

  3. HDU 4417 Super Mario (划分树)(二分)

    Super Mario Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  4. 物理像素,ppi,逻辑分辨率和物理分辨率

    1 明确几个概念: 物理像素:屏幕物理像素 屏幕像素密度ppi:pixels per inch,屏幕上每英寸可以显示的像素点的数量,即屏幕像素密度.顺便一提,ppi就是dpi,只不过有文章里说苹果喜欢 ...

  5. POJ 2914 Minimum Cut (全局最小割)

    [题目链接] http://poj.org/problem?id=2914 [题目大意] 求出一个最小边割集,使得图不连通 [题解] 利用stoerwagner算法直接求出全局最小割,即答案. [代码 ...

  6. [ZJb417]区间众数

    题目大意: 给定一个长度为$n(1\leq n\leq10^5)$的正整数序列$s(1\leq s_i\leq n)$,对于$m(1\leq m\leq10^)$次询问$l,r$,每次求区间$[s_l ...

  7. SQL表操作

    //创建一个名为TEST1的表空间 CREATE SMALLFILE TABLESPACE "TEST1" DATAFILE 'G:\ORACLE_11G\ORADATA\ORCL ...

  8. 用swift开发自己的MacOS锁屏软件(3)

    前两篇中实现了MacOS端的锁屏软件,现在需要再实现一个移动端的app用来实现和mac的通信,以后的文章可能就会两个项目来回穿插了. 写完MacOS的软件又回来接着写iOS真的是享受,看着堆积如山的各 ...

  9. iOS 耳机线控

    当你使用iphone的时候听音乐的时候,播放器在后台运行的时候,你仍然可以通过耳机来进行操作,完成曲目切换,快进,快退等功能!当然你的程序不一定是播放器应用,但是我们仍然可以让它具有这个功能,让用户通 ...

  10. requestFeature() must be called before adding content

    错误:requestFeature() must be called before adding content 原因: Android去掉标题栏点菜单键程序崩溃 在安卓以前的版本中,我们会使用以下两 ...