在做美多商城三方支付业务时,需要连入支付宝支付接口,众所周知,支付宝支付采用了RSA加密签名的安全通信机制,开发者可以通过支付宝的公钥验证消息的来源,同时使用自己的私钥进行信息加密。RSA算法及数字签名机制是服务窗平台与开发者网关安全通信的基础。
关于数字签名机制无非就是下面这四步,归根结底就是为了提高安全性,毕竟涉及钱了,马虎不得:
第一、发方首先有一个公钥/私钥对,它将要签名的报文作为一个单向散列函数的输入,产生一个定长的散列码,一般称为消息摘要。
第二、使用发放的私钥对散列码进行加密生成签名。将报文和签名一同发出去。
第三、收方用和发放一样的散列函数对报文运算生成一个散列码,同时用发放的公钥对签名进行解密。
第四、如果收方计算得到的散列码和解密的签名一致,那么说明的确是发方对报文进行了签名而且报文在途中没有被篡改。
本文介绍如何在Mac下,生成支付宝要求的2048长度的RSA秘钥
1 使用之前介绍过的Homebrew安装openssl
代码语言:javascript复制brew install openssl
2 在命令行敲openssl进入Openssl程序
代码语言:javascript复制OpenSSL> genrsa -out rsa_private_key.pem 2048 #生成私钥
OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem #生成公钥
OpenSSL> exit #退出OpenSSL程序
这样就在当前目录生成了两个文件rsa_private_key.pem和rsa_public_key.pem,将这两个秘钥集成到项目中,就可以进行支付宝支付业务的处理了,如果是windows用户,可以去OpenSSL官方网站下载Windows的OpenSSL安装包进行安装,openssl官网网址:https://www.openssl.org/