## 5 數字簽名
為了保證數據傳輸過程中的安全性,我們使用公鑰對報文體數據 xml(業務數據)進行
加密。為了保證數據真實性和完整性,需要對傳輸的參數進行簽名。同樣,商戶在接收到直 連接口返回的數據后也要進行簽名校驗,解密。
### 5.1 數字簽名算法
結算中心提供了現成的 Java 和.Net 開發語言的接入封裝,接入組件中已經內置了下面所有簽名和加解密的處理流程,如商戶使用封裝進行接入的話,可以忽略本章所有內容,直 接參考 demo 改寫后發起業務請求,有興趣者也可以進行參考閱讀。
如果是基于其它開發語言的,如 C、PHP、Perl 等,則需要按本章所列的算法名稱以及處理流程細節自行實現。
| 用途 | 算法名稱 | 說明 |
| --- | --- | --- |
| 轉換算法 | UTF-8 | 字符串轉 Byte[] |
| 壓縮算法 | GZIP | |
| 簽名摘要算法 | MD5 | |
| 加解密算法 | SHA1withRSA | 需要密鑰 |
| 加解密算法 | RSA | 填充模式:PKCS1PADDING,分片大小:加密244、解密256 |
| 證書位數 | 2048位 | |
| 傳輸編碼 | 十六進制 | 加密和簽名的結果 byte[] 編碼方式 |
### 5.2 商戶請求——加密流程

### 5.3 商戶請求——簽名流程

升序拼接格式:
>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 服務器返回 —— 加密流程

### 5.5 服務器返回 —— 簽名流程

### 5.6 商戶接收返回 —— 驗簽流程

### 5.7 商戶接收返回 —— 解密流程

### 5.8 異步回調商戶接收 —— 驗簽流程

### 5.9 異步回調商戶接收 —— 解密流程

### 5.10 異步回調商戶返回處理結果 —— 簽名流程
