RSA密钥的生成与配置

1.首先需要在计算机上面安装openssl

  openssl下载

2.通过openssl工具生成RSA的公钥和私钥(opnssl工具可在互联网中下载到)

1)生成RSA私钥(需要把解压出来的openssl文件夹放在C盘根目录)
  打开bin文件夹下面的openssl.exe,敲入
  genrsa -out D://deploy/CA/rsa_private_key.pem 1024,并回车
  得到生成成功的结果

此时,我们可以在D://deploy/CA/文件夹中看到一个文件名为rsa_private_key.pem的文件,用记事本方式打开它,可以看到-----BEGIN RSA PRIVATE KEY-----开头,-----END RSA PRIVATE KEY-----结尾的没有换行的字符串,这个就是原始的私钥。

2)把RSA私钥转换成PKCS8格式

  输入命令pkcs8 -topk8 -inform PEM -in D://deploy/CA/rsa_private_key.pem -outform PEM -nocrypt -out D://deploy/CA/rsa_private_key_pkcs8.pem,并回车,生成的文件为私钥转PKCS8格式的私钥

3)生成公钥
  输入命令rsa -in D://deploy/CA/rsa_private_key.pem -pubout -out D://deploy/CA/rsa_public_key.pem,并回车,
  得到生成成功的结果

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

把rsa公钥和私钥配置到接口中
1) 整理公钥和私钥的格式
  a) Java与.Net开发语言
◆商户的私钥
  1、必须保证只有一行文字,即,没有回车、换行、空格等
  2、去掉“-----BEGIN RSA PRIVATE KEY-----”、“-----END RSA PRIVATE KEY-----”,只保存这两条文字之中的部分
◆商户的公钥
  1、必须保证只有一行文字,即,没有回车、换行、空格等
  2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存这两条文字之中的部分
  3、保存到一个临时的记事本中,再打开b.alipay.com,并用要绑定密钥的支付宝账号登录,找到“获取PID、KEY”的按钮
  4、根据http://help.alipay.com/support/help_detail.htm?help_id=243726&sh=Y&tab=null&info_type=9里的步骤上传RSA公钥,即刚才保存在临时记事本中的那串字符串。

◆支付宝公钥
  1、必须保证只有一行文字,即,没有回车、换行、空格等
  2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存这两条文字之中的部分
  a) Php开发语言
◆商户的私钥
  1、必须保证只有一行文字,即,没有回车、换行、空格等
  2、不需要对刚生成的(原始的)私钥做pkcs8编码,即不需要使用到PKCS8格式的私钥
  3、不需要去掉去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”
  简言之,只要维持刚生成出来的私钥的内容即可。
◆商户的公钥
  1、必须保证只有一行文字,即,没有回车、换行、空格等
  2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存这两条文字之中的部分
  3、保存到一个临时的记事本中,再打开b.alipay.com,并用要绑定密钥的支付宝账号登录,找到“获取PID、KEY”的按钮
  4、根据http://help.alipay.com/support/help_detail.htm?help_id=243726&sh=Y&tab=null&info_type=9里的步骤上传RSA公钥,即刚才保存在临时记事本中的那串字符串。
◆支付宝公钥
  1、必须保证只有一行文字,即,没有回车、换行、空格等
  2、须保留“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”这两条文字。
  简言之,支付宝公钥只需要维持原样即可。
2) 把公钥上传给支付宝
  操作流程见:http://help.alipay.com/support/help_detail.htm?help_id=243726&sh=Y&tab=null&info_type=9
3) 从支付宝那获得支付宝公钥
  此处公钥由技术支持提供,请找技术支持索要支付宝公钥文件。
4) 把私钥、支付宝公钥配置到支付宝接口中
  a) Java与。Net开发语言
  打开代码示例中config配置文件,分别在参数private_key、public_key中填写好商户的私钥、支付宝的公钥即可
  b) Php开发语言
  打开代码实例中的key文件夹,
  方法一:
  分别打开rsa_private_key.pem私钥文件、alipay_public_key.pem支付宝公钥文件,按照“()”注释内容填写并保存
  方法二:
  按照1)b)整理后的私钥文件和公钥文件重新命名为“rsa_private_key.pem”、“alipay_public_key.pem”,直接覆盖key文件夹中的这两个文件即可。

PHP的RSA配置常见问题:
●PHP开发语言的代码示例中openssl文件夹中的3个DLL文件用法

  1、如果你的系统是windows系统,且system32文件目录下没有libeay32.dll、ssleay32.dll这两个文件
  那么需要拷贝这两个文件到system32文件目录。

  2、如果您的php安装目录下(php\ext)中没有php_openssl.dll

  那么请把php_openssl.dll放在这个文件夹中

参考文档:http://help.alipay.com/support/help_detail.htm?help_id=253654&sh=Y&tab=null&info_type=9

时间: 2024-08-05 00:17:26

RSA密钥的生成与配置的相关文章

配置错误:未能使用提供程序“RsaProtectedConfigurationProvider”进行解密。提供程序返回错误信息为: 打不开 RSA 密钥容器。

http://www.cnblogs.com/jiaruistone/articles/1441634.html 我们如果想对web.config的数据库连接字符串进行加密的话,那么这里提供了两个方法. 方法一.     使用“DataProtectionConfigurationProvider”形式加密,创建test.aspx文件,代码如下: 需要添加引用 using System.Web.Configuration; using System.IO; //加密 protected void

Windows下RSA密钥生成工具openssl

点击下载 1. 生成原始 RSA私钥文件 private_key.pem openssl genrsa -out private_key.pem 1024 2. 将原始 RSA私钥转换为 pkcs8格式 openssl pkcs8 -topk8 -inform PEM -in private_key.pem -outform PEM -nocrypt -out rsa_private_key.pem 3. 生成 RSA公钥 rsa_public_key.pem openssl rsa -in p

java编程之:生成rsa密钥

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

tomcat7+jdk的keytool生成证书 配置https

tomcat7+jdk的keytool生成证书 配置https 本文仅介绍使用jdk的keytool来生成证书. 1Windows下: 1.1 生成keystore文件及导出证书 打开控制台: 运行: %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA 按照要求一步步的输入信息,问你国家/地区代码的时候,输入cn. 输入密码的时候,这里使用:changeit 最后一步让你输入的时候,直接回车. 具体记录如下: C:\Users\Ad

C#和JAVA的RSA密钥、公钥转换

C#的秘钥跟JAVA的密钥区别 RSA对于程序本身是没有区别的,其格式都是相同的.对于不同的程序来说,存储使用的语法(包装的类)会有所不同. RSA语法和语法标准有很多,大的类型大概分为ASN.1.PKCS.X.509. RSA语法介绍 ASN.1.PKCS是最初的,也是最主要的RSA公钥和私钥的语法标准,被RSA Lab所维护. ASN.1.PKCS#1都定义了公钥和私钥的类型--序列化的数字.为了下一个层次的抽象(适当的包装),现在一般使用的组合是:PKCS#8的私钥,X.509的公钥 .

公钥与密钥的生成与具体的机器没有关系,生成过程没有使用与具体机器相关的信息

早上来公司,收到这个消息,我的心是崩溃的. “tim老师,测试服务器的远程登录密钥失效了”,我问他,做了什么改动没,得到的确切回复是“只是上传了一些代码”,再次询问下,坚持只上传了些代码,言之凿凿.这个问题可大了,1. 就这个机器而言,没有做任何事,“只是上传了代码”就导致用了两年的密钥不能用了,这个机器是着急用来搭建测试服务器的.这个测试服务器已经搭建了一个多星期了,之前一直说代码没准备好,现在又蹦出这个,真是幺蛾子啊.2. 所有包括正式的服务器与测试服务器一共11台.要是所有的服务器都在某个

.NET与JAVA RSA密钥格式转换

一.该篇内容用于记录.net和Java之间,RSA公密钥的转换 using Org.BouncyCastle.Asn1.Pkcs; using Org.BouncyCastle.Asn1.X509; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Math; using Org.BouncyCastle.Pkcs; using Org.BouncyCastle.Security; using Org.BouncyC

RSA密钥之C#格式与Java格式转换

前言 最近由于项目需求,服务端由c#编写,客户端由java编写.通信数据使用RSA非对称加密.但是java和c#生成的密钥格式是不一样的,所以需要转换格式才可以正常使用.网上搜到使用java进行格式转换的代码(如:http://blog.csdn.net/road2010/article/details/40071881 ),本文将给出一种c#的实现方法. 密钥格式 java密钥格式如下: 私钥: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBA

RSA密钥的跨平台通用

RSA使用public key加密,用private key解密(签名相反,使用private key签名,用public key验证签名).比如我跟合作方D之间的数据传输,我使用D提供给我的public key进行加密后,传给D,他使用他的private key解密后得到原文:response时,D使用我提供给他的public key加密,我收到后使用我的private key解密得到原文.一个常用的场景是两方之间的数据传输使用AES加密,再把AES的密钥通过RSA加密后一并传输.(AES的性