使用OpenSSL为支付宝生成RSA私钥

通过openssl工具生成RSA的公钥和私钥(opnssl工具可在互联网中下载到,也可以点此下载无线接口包,里面包含此工具)打开openssl文件夹下的bin文件夹,执行openssl.exe文件:

1)生成RSA私钥 
输入“生成命令.txt”文件中:“genrsa -out rsa_private_key.pem 1024”,并回车得到生成成功的结果,如下图: 

此时,我们可以在bin文件夹中看到一个文件名为rsa_private_key.pem的文件,用记事本方式打开它,可以看到-----BEGIN RSA PRIVATE KEY-----开头,-----END RSA PRIVATE KEY-----结尾的没有换行的字符串,这个就是原始的私钥。 
2)生成RSA公钥 
输入命令:rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,并回车,得到生成成功的结果,如下图: 


此时,我们可以在bin文件夹中看到一个文件名为rsa_public_key.pem的文件,用记事本方式打开它,可以看到-----BEGIN PUBLIC KEY-----开头,-----END PUBLIC KEY-----结尾的没有换行的字符串,这个就是公钥。

3)把RSA私钥转换成PKCS8格式 
输入命令:pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt,并回车当前界面中会直接显示出生成结果,这个结果就是PKCS8格式的私钥,如下图: 

右键点击openssl窗口上边边缘,选择编辑→标记,选中要复制的文字(如上图), 
此时继续右键点击openssl窗口上边边缘,选择编辑→复制, 
把复制的内容粘土进一个新的记事本中,可随便命名,只要知道这个是PKCS8格式的私钥即可。 

 

经过以上步骤,开发者可以在当前文件夹中(OpenSSL运行文件夹),看到dsa_private_key.pem(DSA私钥)、dsa_private_key_pkcs8.pem(pkcs8格式DSA私钥)、dsa_public_key.pem(对应DSA公钥)和dsa_param.pem(参数文件)4个文件。开发者将私钥保留,将公钥提交给支付宝网关,用于验证签名。

注意:对于使用Java的开发者,将pkcs8在console中输出的私钥去除头尾、换行和空格,作为开发者私钥,对于.NET和PHP的开发者来说,无需进行pkcs8命令行操作。

时间: 2024-08-02 12:55:02

使用OpenSSL为支付宝生成RSA私钥的相关文章

java编程之:生成rsa密钥

通过openssl工具生成RSA的公钥和私钥(opnssl工具可在互联网中下载到,也可以点此下载无线接口包,里面包含此工具) 打开openssl文件夹下的bin文件夹,执行openssl.exe文件:1)生成RSA私钥 输入"生成命令.txt"文件中:"genrsa -out rsa_private_key.pem 1024",并回车得到生成成功的结果,如下图: 此时,我们可以在 bin文件夹中看到一个文件名为rsa_private_key.pem的文件,用记事本方

C#生成的RSA私钥,IOS怎么转格式呢?谁有过和苹果开发人员对接的经验。。。

问题描述 我生成了一对密钥,IOS(用的OC)上面保存私钥,C#生成的私钥比如为<RSAKeyValue><Modulus>0QN3kepHBGCVD11WFmlSTTZVCzkeGc9NB2p5tkZys4SV9/rBaxsrMkCeL88k+LJ4JIZGXna5+pchkDycAfiKOjp+B7fNT07Kwx6imIUfbRJrO1+Rq1s0NSPZnaiS8Q9Nb3YZwf498CDlxdx2A3z/WDbaJ/zG/jPHfl1l5SINw0s=</Modu

rsa加解密-关于java自带RSA密钥包生成的私钥公钥加密不了,求大神帮忙看一下

问题描述 关于java自带RSA密钥包生成的私钥公钥加密不了,求大神帮忙看一下 我用JAVA生成了一个公钥如下: System.out.println(publicKey.getPublicKey()); 输出:modulus:154308594144468705348294760484396264219304223307125368116140288659005422830 114898674784044956357283073098453132761265419031547660249768

支付宝接口错误:您使用的私钥格式错误,请检查RSA私钥配置,charset = utf-8

调试支付宝条码支付的时候碰到个错误:您使用的私钥格式错误,请检查RSA私钥配置,charset = utf-8, 原因是我代码里的那私钥是直接复制pem文件里的代码的,可支付宝底层的sdk中默认是以文件的方式来进行, 引用 查看一下DefaultAopClient.cs,里面有一个自定义属性keyFromFile改成=false,则是用代码的方式进行,true的话则必须得传入pem的物理路径,如:HttpRuntime.AppDomainAppPath.ToString() + "App_Dat

PHP支付宝接口RSA验证

这两天一直困扰的PHP RSA签名验证问题终于解决了,由于之前RSA接触的不多,再加上官方至今还未有PHP的SDK可供参考,因此走了一些弯路,写在这里和大家分享.     虽然支付宝官方还未提供相关SDK,PHP确实可以实现RSA方式的签名,这点其实很重要,由于不熟悉,在遇到困难的时候,经常会不由自主地想到是否PHP不支持RSA签名,干脆用MD5得了,这样就没有了前进的动力.其实说穿了MD5和RSA签名,不同的只是签名方式的区别,其他的都一样,因此我这里主要说一下如何用RSA进行签名和验签. 

Android版本支付宝集成获取私钥与公钥

项目需要,需要在客户端集成支付宝接口.就研究了一下:因为使用支付宝接口,就需要到支付宝官网:注册帐号,并申请.下面讲的是申请好之后的操作.登录成功之后,   店家我的商家服务-在页面的下方找到-->签约管理->找打 移动支付-–>点击下载集成文档->跳到新的页面,在页面下方->找到下载开发包,下载移动支付即可.然后解压出来之后一般会得到三个文件夹. 这个时候要打开文件名为:  支付宝钱包支付接口开发包2.0标准版的文件.打开之后有一个Demo 文件.打开Demo文件.里面会有

多个商品一起支付,支付宝生成多个订单

问题描述 多个商品一起支付,支付宝生成多个订单 我选择了某一个商家的多个商品,用支付宝支付的时候,支付一次,商家支付宝里生成的是多个订单.怎么实现的?? 解决方案 小效果:商品抢购(多个) 解决方案二: 业务逻辑清楚了之后 就会好写 解决方案三: 做一个订单详细table和一个支付状况table 针对一个商家的商品是一次支付状况,利用时间戳生成一个batchno 然后再利用batchno生成订单号码(继续时间戳结合) 这样可以生成多个订单 然后把信息推送给结算平台 解决方案四: 你好细心哦,我买

Linux下OpenSSL的DSA与RSA非对称加密解析

在日常系统管理工作中,需要作一些加解密的工作,通过openssl工具包就能完成我们很多需求! 1. openssl RSA 加解密 RSA是基于数论中大素数的乘积难分解理论上的非对称加密法,使用公私钥的方法进行加解密 公钥 用于加密,它是向所有人公开的 ; 私钥用于解密,只有密文的接收者持有 生成一个密钥(私钥) 代码如下: [root@hunterfu ~]# openssl genrsa -out private.key 1024 注意: 需要注意的是这个文件包含了公钥和密钥两部分,也就是说

c# rsa 私钥机密公钥解密

问题描述 使用pemPKCS#8格式私钥和公钥,在c#里测试使用公钥加密私钥解密没问题,使用私钥加密公钥解密报错不正确的项,难道c#私钥加密的公钥解密有问题,还是说我私钥加密的有问题? 解决方案 解决方案二:解密的时候报该项不存在解决方案三:.netRSA不支持这个功能,私钥只能解密不能加密.可以试试:解决方案四:如果你需要自己研发研发一个"证书授权"系统,需要私钥加密公钥解密,只能自己写一个RSA处理功能.解决方案五:.net的RSACryptoServiceProvider不支持使