APP 启动的时候 调用注册 获取一个 APPID 以及 APP secret 再通过签名算法,列了个比较流行的签名算法
对所有 API 请求参数(包括公共参数和业务参数,但除去 sign 参数和 byte[]类型的参数),根据参数名称的 ASCII 码表的顺序排序。如:foo:1, bar:2, foo_bar:3, foobar:4 排序后的顺序是 bar:2, foo:1, foo_bar:3, foobar:4。
将排序好的参数名和参数值拼装在一起,根据上面的示例得到的结果为:bar2foo1foo_bar3foobar4。
把拼装好的字符串采用 utf-8 编码,使用签名算法对编码后的字节流进行摘要。如果使用 MD5 算法,则需要在拼装的字符串前后加上 app 的 secret 后,再进行摘要,如:md5(secret+bar2foo1foo_bar3foobar4+secret);如果使用 HMAC_MD5 算法,则需要用 app 的 secret 初始化摘要算法后,再进行摘要,如:hmac_md5(bar2foo1foo_bar3foobar4)。
将摘要得到的字节流结果使用十六进制表示,如:hex(“ helloworld ”.getBytes(“ utf-8 ”)) = “ 68656C6C6F776F726C64 ”
假如 APP 被反编译了怎么破?? 我就能拿到你的各种逻辑了
再问下 这种 APP 的数据加密方案,大家有什么好的建议
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.