赞 | 60 |
VIP | 90 |
好人卡 | 4 |
积分 | 75 |
经验 | 13776 |
最后登录 | 2024-4-4 |
在线时间 | 2564 小时 |
Lv4.逐梦者
- 梦石
- 2
- 星屑
- 5520
- 在线时间
- 2564 小时
- 注册时间
- 2012-2-9
- 帖子
- 990
|
不管怎么加密,纯js就是明文,别人解你包,放到电脑上拿浏览器跑一下,然后对象在运行时就是明文的,人家JSON.stringify($gameMap),数据的json明文就出来了(同样适用于其他数据)。
我觉得加密data文件没有意义啊……
难不成还有人复制你的事件拿走使用么。
在所有data里,唯一需要保密的可能就是动画?动画可以通过加密图片资源来保护。
如果手机版一定要加密,只能用c写一个arm linux(也就是手机上的运行库),然后在crosswalk里调用,加密解密算法写进库里,对外不提供解密整个json的接口,只提供获取某个数据的接口,比如:
要获取某个坐标的用的图块id,js里的正常用法是这样:
(乱写的不要在意)
- var id = $gameMap.data[i][j]
复制代码
这个$gameMap对于破解者来说就是明文。
而该库只提供如下接口:
实际的$gameMap,只存在于该库的内存中,你还可以想办法,让$gameMap在每次取完某个数据后立即销毁,下次用时再解密。
而该函数是你用c写的,破解者只能拿到编译好的库,拿不到代码,不知道你的算法。
这样,即使他把你的包解压后放电脑上运行,因为这个库是安卓版的,所以电脑上跑不起来,他也无法拿到你的数据。
进一步,如果他要把库反编译,看汇编看懂你解密数据的逻辑,那就认了吧。
(我正在写一个电脑上的加密工具,但我也只打算加密素材,不加密数据) |
|