最近接收翼支付支付接口的对接工作,翼支付使用公网HTTP协议交换。在对接的功能中涉及到银行卡的验证、充值、提现功能。在公网使用HTTP协议必然要涉及到加密、解码工作中。现在对这些加密、解密应用场景来进行剖析。
场景1: 对银行卡验证。通过翼支付快捷验证接口,商户可以验证用户的银行卡、户名、身份证号、银行卡预留手机号这四要素信息。
前提条件: 我方知道翼支付端的公钥,翼支付知道我方的公钥。
1 - 对明文进行加密。
在明文传输过程中银行卡、户名、身份证号、银行卡预留手机号 这些是需要做加密的。 那就使用AES 对称加密方式。 使用AES 对银行卡、户名、身份证号、银行卡预留手机号进行加密。那么翼支付如何知道对称加密AES的密钥呢??? 那就需要我们在报文中来告诉翼支付。
2 -传递密钥。
在aesEncodedKey 字段中告诉翼支付我们AES中加密的密钥。但是,aesEncodedKey也不能明文传输啊。那就通过非对称加密方式,通过翼支付的公钥进行加密,使用RSA算法进行加密传输,翼支付通过自己的私钥进行解密。
3 -数字签名。
对传输过程中,如果对报文进行签名呢?? 那就使用RSA算法作为签名算法。 使用我方的私钥进行签名,翼支付使用我们公布的公钥进行解密。
这样在公网中,利用对称加密算法(AES) 非对称加密算法(RSA) 以及签名算法(RSA私钥加密)来保证我们的消息是保密的。