百付宝发送报文时,先进行加密,然后加签,返回报文后,先验签,再解密。
其中加密和解密用的是AES算法,且密钥相同,由百付宝提供。AES算法的密钥长度,JDK中规定最长是128位,如果超过了(比如256位),则需要替换JDK下的jar包。
替换路径:jdk安装目录下的jre/lib/security/;替换jar包名称:local_policy.jar、US_export_policy.jar。 jar包可以从网上搜索下载。
签名使用RSA算法,需要百付宝和其商户(比如接百付宝通道的银行)各生成一对公私钥。公钥给对方,私钥自己留。加签使用私钥,验签使用公钥。
RSA公私钥可以使用openssl工具生成,也可以写代码生成。百付宝的demo中有方法可以直接生成。 密钥长度可以选择1024位或2048位。