数据加密算法#
以下数据为例#
{
"soft": "Qhi12h05z5pF",
"data": {
"uuid": "5CXAT39Y77Q8RFDH",
"token": "!$drJRK!!_c@HkQJ",
"clientid": "Z06Y4M8E7HNG7FXD8B",
"clientos": "Windows Server 2022",
"version": "1.0",
"mac": "ODXS98UID89RX",
"feature": "127.0.0.1",
"md5": "b6074a7f47271a1db2fbc15d49264d37"
},
"sign": ""
}
只需要加密data结构中的数据即可,其他部分无需加密,也就是说只需要加密下面这一部分{
"uuid": "5CXAT39Y77Q8RFDH",
"token": "!$drJRK!!_c@HkQJ",
"clientid": "Z06Y4M8E7HNG7FXD8B",
"clientos": "Windows Server 2022",
"version": "1.0",
"mac": "ODXS98UID89RX",
"feature": "127.0.0.1",
"md5": "b6074a7f47271a1db2fbc15d49264d37"
}
signdata = 加密后的data数据
sendDataString = 文本替换(客户端sign算法, "[data]", signdata)
sendDataString = 文本替换(sendDataString, "[key]" 软件秘钥)
sign = 取md5(sendDataString)
{
"soft": "Qhi12h05z5pF",
"data": "ids9uf845u87gy76dfstf962t636ry8fu904ig90i5r9hu8927d3yf790u90g45",
"sign": "83079f839993bd13f8cb45bc0c9d28fc"
}
RC4加密方式需在加密后把加密数据转换到16进制,解密时也应先转回
封包安全校验(一次性过期)#
1.解密客户端数据后请先校验uuid是否和发送的时候一致,不一致封包数据一定是 伪造的
2.然后校验token,算法:md5(发送时候的token + 服务端返回的t时间戳) 然后进行对比,不一致封包数据一定是伪造的
数据解密算法#
按照加密的顺序逆向操作解密即可,如果开启签名验证,解密前应先验证数据签名后再解密