我现在有一个客户端,有其他人通过反编译老查看我代码里面的接口密码,从而来调用接口,请问能在接口的密码上怎么处理一下,或者有对dll比较好的加密方式
这种只能代码混淆,密码+盐+时间戳生成aes密文到服务器验证吧 别人有时间还是能破解的
但是他取到了也可以到服务器验证再来调取接口
@确实是千年老妖: 所以需要混淆代码把加密过程混淆之后,别人很难读懂起到一定的保护作用
@damibing: 有时间戳的 而且你还可以在接口里做各种校验 让别人拿到接口也无法直接调用 这有点jwt的味道了 不过代码混淆是基础 而且混淆对性能有损失并且只要花功夫就能破解 只要你的接口的成本小于破解的成本就行了 一般没人会想着去破解的 如果想简单一点就直接aot编译
不是,你接口密码写死的吗???
是别人的接口他密码是写死的给我,然后写死在客户端,dll被反编译就能看到
@确实是千年老妖: 你这里可不可以 加一个接口去请求?请求正常在返回 接口密码在去调用? 意思就是 你这个密码存你自己数据库,通过一个接口去拿到,再去请求,而不是直接写死放在程序
@确实是千年老妖:
其它的都有可能被别人破解的可能吧, 你放到数据库,你可以随时改加密方式啊,这样也不会太被动
@敲代码挣彩礼: 数据库在本地还是会暴露密码
@敲代码挣彩礼: 数据库是在用户本地
@确实是千年老妖:
意思是这一套都在别人手上,人家全都可以看到程序,登录数据库,是吧?然后你不希望人家频繁掉你那个把密码写死的接口
@敲代码挣彩礼: 是的
@确实是千年老妖:
那这个地方就要你们弄一个对外获取密码的接口了,不然我感觉没法预防,除非你代码混淆到dll编译都看不到代码的
看看吧 ,加密混淆到dll 编译之后都看不到源代码
https://www.cnblogs.com/eggtwo/p/12110971.html
别人能反编译看见密码,你不如把这个DLL也反编译之后,把里面的密码改用其它的加密方式?
但是他不需要知道我是怎么加密的,只需要取到这个东西去请求接口就行了
@确实是千年老妖: 那就把这个DLL反编译之后,直接集成到你的程序里面去,再用其它复杂一点的方式进加密,可行?
把内容写成一个算法,够复杂,够错乱,反编译名称出问题,增加反编译成本。
让该过程不易调试(甚至IL很难调试【意味着汇编变得很长】,比如过程中增加Emit(甚至多次该过程)等等,总而言之增加复杂度)。
人造的东西,只能增加逆向成本,不能完全阻止。
不按常规出牌
最好把自己弄晕那种
让对方即使破解出来也看不懂就可以了
密码都是你设的,改一下就可以了,最好是改一下规则。
都在别人手上....应该是很难防范吧...我不反编译程序,. 直接抓包也可以吧..
确实