API資料傳輸加解密
Scan2Pay交易過程傳輸資料皆需要進行加密。
Last updated
Scan2Pay交易過程傳輸資料皆需要進行加密。
Last updated
原始的Request資料, 使用AES-128加密, 置放於JSON中的"Request"欄位, 並將加密鎖使用的AES Key, 使用intella提供的RSA public key加密後, 置於JSON中的"ApiKey"欄位, 然後發送到Scan2Pay API.
加密流程如下圖所示
傳輸資料內容要使用AES 128-bit (16位元) 加密,AES key由用戶端產生
建議每筆交易請求皆重新產生,以確保資料的安全性
所要發送的JSON格式資料, 需要使用AES加密
AES加密採用128-bit金鑰, CBC模式, PKCS5填充, IV由intella提供
將加密所使用的AES Key, 使用intella所提供的RSA Public Key加以加密
算法: RSA 工作模式: ECB 填充模式: PKCS#1 v1.5
AES Key需要先進行Base64編碼後成為字串, 再以RSA公鑰進行加密.
將AES加密過的原始傳輸資料置於JSON中的"Request"欄位, RSA加密的AES Key置於"ApiKey"欄位, 發送到Scan2Pay API, 並取得回覆的加密結果
範例: 原始Request資料
AES加密, 並含入RSA加密後的AES Key資料 (加密資料皆使用Base64 encode)
收到的Response資料, 格式如下
Response內容為AES加密資料(Base64 encode), 使用加密Request相同的AES Key來進行解密, 取得原始的Response JSON內容. (一樣是CBC模式, PKCS5填充, 並使用intella提供的IV值)
Response欄位所帶的加密字串中, 請先移除 "\n" 字串, 並將 "\u003d" 置換成 "="後, 再進行AES解密