tn要求
我们根据官网api文档可以看到tn要求说明
tn是用于在后续使用中唯一标识的21位定长数字串,纯数字。所以,大家看到的512位长的tn那不是,那是rsa加密的结果。当然也可以还原出21长的tn
ios的iphone端是这样的
uppaywallet://uppay?paydata=3b5e7a219ac1a7c2ba5e89aeb7b9b57f0c1f6e94b036ba458414ed07172fd1bf3d3d0397877128d4d11f36c55a4c6abdd087d2bcffff0302592250e330886f248b8cf820bf96ff19a85792f3ed8bc18a&s=26732008520004206701
其实是个3des算法。
我们可以通过s反算出3des的key,然后解密出paydata中的tn。
正向的话就简单了,直接随机一个key,然后通过tn进行加密,最后拼接起来。就得到了。
android端就简单了
upwrp://uppayservice/?style=token&paydata=dG49NzYwMjg3NzE5MzQ5OTE0NDk5NDA1LHJlc3VsdFVSTD1leGl0LHNjaGVtZT0scGFja2FnZU5hbWU9LHVzZXRlc3Rtb2RlPWZhbHNl
这个直接拿到tn就能解决,没难度
对抗
对tn进行隐藏
加大抓包难度
对环境进行校验
期待交流
dGcgQGludm9rZXlvdQ== (base64decode后查看联系方式)