|
.版本 2
.支持库 eHTTP
.支持库 eFile
.支持库 eText
.局部变量 SECRET, 文本型
SECRET = “secret”
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
_测试 ()
_测试2 ()
.子程序 encrytSHA256, 文本型, 公开, 加密字符串
.参数 content, 文本型
.参数 secret, 文本型
.局部变量 digest, 字节集
.局部变量 hexDigest, 文本型
digest = 计算HmacSm3 (content, secret)
hexDigest = 字节集转十六进制 (digest)
返回 (大写 (hexDigest))
.子程序 计算HmacSm3, 字节集, 私有, 使用sm3.dll计算HMAC-SM3
.参数 data, 文本型
.参数 key, 文本型
.局部变量 sm3Dll, 整数型
.局部变量 result, 字节集
.局部变量 dataSize, 整数型
.局部变量 keySize, 整数型
dataSize = 取字节集长度 (到字节集 (data))
keySize = 取字节集长度 (到字节集 (key))
sm3Dll = 调用外部DLL (“sm3.dll”, “HmacSm3”, 到字节集 (data), dataSize, 到字节集 (key), keySize, @result)
返回 (result)
.子程序 _测试, 子程序, 公开
.局部变量 json, 文本型
.局部变量 currentTimeMillis, 整数型
.局部变量 sign, 文本型
json = “{‘a’:’a’}”
currentTimeMillis = 取现行时间 ()
调试输出 (“当前时间戳:” + 到文本 (currentTimeMillis))
调试输出 (“当前报文:” + json)
调试输出 (到文本 (currentTimeMillis) + “\n” + json)
sign = encrytSHA256 (到文本 (currentTimeMillis) + “\n” + json, SECRET)
调试输出 (sign)
.子程序 _测试2, 子程序, 公开
.局部变量 json, 文本型
.局部变量 inputJson, 文本型
.局部变量 sign, 文本型
inputJson = “{‘hosp_dept_codg’:’1’}”
json = “{‘infno’:’5101’, ‘msgid’:’63000000000000000000000008’, ‘mdtrtarea_admvs’:’610602’, ‘insuplc_admdvs’:’610602’, ‘recer_sys_code’:’FSI_LOCAL’, ‘dev_no’:’’, ‘dev_safe_info’:’’, ‘cainfo’:’’, ‘signtype’:’’, ‘infver’:’1.0’, ‘opter_type’:’1’, ‘opter’:’system’, ‘opter_name’:’测试’, ‘inf_time’:’2020-12-03 10:00:00’, ‘fixmedins_code’:’H330102000001’, ‘fixmedins_name’:’延安致美****’, ‘sign_no’:’’, ‘input’:” + inputJson + “}”
调试输出 (json)
sign = encrytSHA256 (“1634710020\n” + json, SECRET)
调试输出 (sign)
.子程序 字节集转十六进制, 文本型, 公开
.参数 bytes, 字节集
.局部变量 i, 整数型
.局部变量 hexString, 文本型
hexString = “”
.判断循环首 (i < 取字节集长度 (bytes))
hexString = hexString + 格式化数字 (取字节 (bytes, i), “HH”)
i = i + 1
.判断循环尾 ()
返回 (hexString)
|
|