🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 5 数字签名 为了保证数据传输过程中的安全性,我们使用公钥对报文体数据 xml(业务数据)进行 加密。为了保证数据真实性和完整性,需要对传输的参数进行签名。同样,商户在接收到直 连接口返回的数据后也要进行签名校验,解密。 ### 5.1 数字签名算法 结算中心提供了现成的 Java 和.Net 开发语言的接入封装,接入组件中已经内置了下面所有签名和加解密的处理流程,如商户使用封装进行接入的话,可以忽略本章所有内容,直 接参考 demo 改写后发起业务请求,有兴趣者也可以进行参考阅读。 如果是基于其它开发语言的,如 C、PHP、Perl 等,则需要按本章所列的算法名称以及处理流程细节自行实现。 | 用途 | 算法名称 | 说明 | | --- | --- | --- | | 转换算法 | UTF-8 | 字符串转 Byte[] | | 压缩算法 | GZIP | | | 签名摘要算法 | MD5 | | | 加解密算法 | SHA1withRSA | 需要密钥 | | 加解密算法 | RSA | 填充模式:PKCS1PADDING,分片大小:加密244、解密256 | | 证书位数 | 2048位 | | | 传输编码 | 十六进制 | 加密和签名的结果 byte[] 编码方式 | ### 5.2 商户请求——加密流程 ![](https://img.kancloud.cn/5f/3f/5f3fea884f58a040a94b9f8f22744fb7_1949x2048.png) ### 5.3 商户请求——签名流程 ![](https://img.kancloud.cn/bc/be/bcbec5524364258f58989be6006a7dc4_2048x1938.png) 升序拼接格式: >name1=value1&name2=value2… 示例: >gatewayversion=2.0&msgbody=3FC2C233382FE0F064BB14E91FDB1B2CF9BA002370E B7297AA542217EF3EA8192D1995DA7F31C5B020AFB621DA3B511053C5D799C8B34A1CE 6A537DF4C78EDA38623BCB07547277058A55124D5B115DB9D8AA00BF6FDDB0D5DEDC 8358F5C26C02D3BC7BAF638C4BB5F29F06D2BAA37B7E314BBFAAAF45F0E0328C8AD1E 45C24CCD39AA111C053089704A482964B6D40E6AAB0D4C396355259BE71CFD1A4C18CE 0ADAC391904D3E77BEDD16B95AF2CEA29CE47045FC9ED8989BBA66C4E3A8C8681E01 D2E8CEBB0F5C6E79EA079A3E5FDD67BE133D48E3892D7F6008470F425311B1B8C87A45 8F2083EE7068C81CC23C281164AEE38D28B1E7048B484E9A7E2CA4360C8FFFEB618C042 F929DCB41A40AB59022E7917A3D7F6CF9C3CB9FBCEF15198D5FDAE4A3DAA1DD12827 BC97BB2F7D7032B0FC80492C0E83CB58C6368957C3F1F356B48665A31873C7A4A920F826 40682D261110D0112E3190B867BE99FB7154894CBA45812F6FFE9373069F4A3C45304CC41 2193D7F5D0CD192E0D664EE1CD568729B3C545E5E9A06F6BEA8561CE6E26EA3F8317591 C8BFB49E5AA22F8B51A14DDDB1DEECE030F0F42D2C1B999B9E9B79B978165613A43CC 67443B35CA04B2DC3E626E90CD13CAFE1C305DF39319EA271AC12AB0C74DA7D7703FE EB3047249D41902A46DAE65F3AD0B12C9BB8076B5FACC36A95B71DD251788C550DCCD 4787&msgno=1428654827424&msgtype=SINGLEPAY&resptype=2&respurl=http://168.33.53.8: 7070/AsyncRespServletV2&returnencrypt=0&sendtime=20150410163347&subnode=B00000000 005&version=2.0&ziptype=1 ### 5.4 服务器返回 —— 加密流程 ![](https://img.kancloud.cn/44/02/440266c52f35e1e33e64de0d927a3b04_2048x1506.png) ### 5.5 服务器返回 —— 签名流程 ![](https://img.kancloud.cn/8c/13/8c1354196f1ee5bb57c606f47fa49351_2048x1764.png) ### 5.6 商户接收返回 —— 验签流程 ![](https://img.kancloud.cn/b2/29/b2293ca8def2136f097f98ef069f264a_2048x1681.png) ### 5.7 商户接收返回 —— 解密流程 ![](https://img.kancloud.cn/46/2b/462b1a257c6cb74a7f2073991ea09ce8_905x2048.png) ### 5.8 异步回调商户接收 —— 验签流程 ![](https://img.kancloud.cn/91/b4/91b45a6990c72da36477375c1aeb4764_2048x1688.png) ### 5.9 异步回调商户接收 —— 解密流程 ![](https://img.kancloud.cn/ef/ed/efedfce82cf66a4eaaac84cb9dc9a424_1132x2048.png) ### 5.10 异步回调商户返回处理结果 —— 签名流程 ![](https://img.kancloud.cn/7b/18/7b18c72b342bc988e1cd7ce43abe460e_2048x1329.png)