APICloud集成支付宝--RSA秘钥生成详解

RSA 和 OpenSSL 介绍

    记得大学里有门课叫《电子支付与安全》,这里面就讲了双重秘钥加密,主要内容如下:

    RSA 是一种非对称的签名算法,即签名密钥(私钥)与验签密钥(公钥)是不一样的, 私钥用于签名,公钥用于验签。在与支付宝交易中,会有 2 对公私钥,即商户公私钥,支付宝公私钥。使用这种算法可以起到防止数据被篡改的功能,保证支付订单和支付结果不可抵赖(商户私钥只有商户知道)。

    OpenSSL 是基于众多的密码算法、公钥基础设施标准以及 SSL 协议安全开 发包。通过 OpenSSL 生成的签名和内置的算法可以做到跨平台,这样在不同的开发语言中均可以签名和验签。


Windows下OpenSSL安装与使用(本人电脑Window7 x64)

    刚开始以为openssl是Windows命令行自带的一个命令呢,结果很不幸--没有。百度了一下Windows下安装和配置openssl结果安装了很多无用的东西,结果只是为了编一个OPenssl。于是乎就百度下载了很多编译后的Openssl,试了很多次,还花了某币在某论坛上下载了。最终找到一份可以使用的Openssl程序。给大家推荐一个网站,可以去那里获取各种版本的Openssl。http://slproweb.com/products/Win32OpenSSL.html。

也可以去附件中自己下载.exe形式的安装包。


将配置文件添加至环境变量(可选)

Openssl安装目录为C:\\alipay 。

有兴趣的童鞋可以将配置文件目录添加到环境变量。

第一步:新建OPENSSL_HOME变量

wKioL1XeyOzj41F6AAB_urWctzE270.jpg

第二步:新建配置文件环境变量

wKiom1Xex1Ky26cFAACA6WcTbnk765.jpg

还可以将安装文件bin目录直接添加到Path变量中,这样就不用每次执行命令还得进入bin目录。

制作公私秘钥

第一步:生成原始商户秘钥

在命令行下进入安装文件bin目录,执行"openssl genrsa -out rsa_private_key.pem 1024",效果如图所示:

wKiom1XeyhDDg0mLAACzcgHcut4484.jpg

在bin目录下生成了私钥文件,进入bin目录查看如下:

wKiom1XeymzxcPlGAAA9vpejnbA704.jpg

第二步:将商户私钥转换成pkcs8格式。

在命令行中执行如下命令:

"openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt"

效果如图所示:

wKioL1XezWzCc6r1AAKQcnRgRgI511.jpg

马赛克打的不专业请忽略。

复制key内容从注释-----BEGIN PRIVATE KEY-----(不包括该行注释)至-----END PRIVATE KEY-----止。将复制的内容另存为private_key.txt(去掉空格、换行),请妥善保管,签名时使用。


第三步:生成商户公钥。在命令行执行:

"openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem"

会在C:\\alipay\bin目录下生成rsa_public_key.pem文件。如图所示:

wKiom1XezfKS4VQSAAA5SN9WIrs496.jpg

用文本编辑器打开该文件,如下图所示:

wKioL1Xe0E7RvVIRAAE_gW1fYi4017.jpg

删除注释"-----BEGIN PUBLIC KEY-----"和"-----END PUBLIC KEY-----",去掉回车和换行。最后得到一 行字符串并保存至“public_key.txt”文件中。如下图所示:

wKiom1Xezunh5nfeAACRzQxbsmg537.jpg最后上传商户公钥至支付宝用于验证商户私钥。






你可能感兴趣的:(windows,支付宝,程序,大学,百度下载)