好啦~昨天測試了nonce的方法
今天來談談剩下需要的api參數
並且來透過容易上手的nodejs框架express
包裝成api形式讓大家感受
一步步完成呼叫永豐api流程
目前還尚缺hashid,sign,IV,加密後的mseeeage
今天先把hashID包裝成api吧!! (由永豐提供的四組hash每兩組要透過xor運算在連起來形成)
雖然hashID很簡單實作
並且永豐也有提供加解密平台來
可以直接輸入四組自己的hash拿到hashID
不過我們既然都要包裝api了
那就自己幹一個api吧
首先安裝nodejs (官方連結如下)
https://nodejs.org/en/
可選擇LTS 版本比較穩定
我這邊環境是使用v15.11.0
接者打開一個資料夾
透過command line輸入
npm init -y
先把package.json建立好
安裝express
npm i -S express
接者我們就可以把今天code上上去拉
前端傳送四組hash
這時我們必須要把字串轉成16進字的buffer
Buffer.from是nodejs裡面提供的function
再來透過 ^ 運算值我們就可以做xor
最後再透過toString('hex')轉回字串
包裝成hashid的restful api
回傳的string記得用toLocaleUpperCase把它都變成大寫字符喔!
程式碼如下
var express = require('express')
var app = express()
app.use(express.json()) // for parsing application/json
app.use(express.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded
function xor(hex1, hex2) {
const buf1 = Buffer.from(hex1, 'hex');
const buf2 = Buffer.from(hex2, 'hex');
const bufResult = buf1.map((b, i) => b ^ buf2[i]);
return bufResult.toString('hex');
}
app.post('/hashid', function (req, res, next) {
const a = xor(req.body.A1,req.body.A2)
const b = xor(req.body.B1,req.body.B2)
const result = a + b
res.send(result.toLocaleUpperCase())
})
app.listen(8888)
這時候我們可以用postman測試是否有成功
這樣看不出來我們算的是否正確
透過永豐提供的計算機驗算吧!
這邊可以看到我們算的AESKey是正確的
今天先到這邊結束吧!
看看是否明天可以把剩下參數的api補完
我們就直接進行主要交易的服務撰寫吧!