设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 7756|回复: 16
打印 上一主题 下一主题

[有事请教] 所以说MV是没有办法加密JSON吗?

[复制链接]

Lv4.逐梦者

梦石
2
星屑
5520
在线时间
2564 小时
注册时间
2012-2-9
帖子
990

开拓者

1
发表于 2019-2-21 19:50:02 | 显示全部楼层
不管怎么加密,纯js就是明文,别人解你包,放到电脑上拿浏览器跑一下,然后对象在运行时就是明文的,人家JSON.stringify($gameMap),数据的json明文就出来了(同样适用于其他数据)。

我觉得加密data文件没有意义啊……

难不成还有人复制你的事件拿走使用么。

在所有data里,唯一需要保密的可能就是动画?动画可以通过加密图片资源来保护。

如果手机版一定要加密,只能用c写一个arm linux(也就是手机上的运行库),然后在crosswalk里调用,加密解密算法写进库里,对外不提供解密整个json的接口,只提供获取某个数据的接口,比如:
要获取某个坐标的用的图块id,js里的正常用法是这样:
(乱写的不要在意)

  1. var id = $gameMap.data[i][j]
复制代码


这个$gameMap对于破解者来说就是明文。

而该库只提供如下接口:


  1. int GetMapId(i,j);
复制代码

实际的$gameMap,只存在于该库的内存中,你还可以想办法,让$gameMap在每次取完某个数据后立即销毁,下次用时再解密。
而该函数是你用c写的,破解者只能拿到编译好的库,拿不到代码,不知道你的算法。

这样,即使他把你的包解压后放电脑上运行,因为这个库是安卓版的,所以电脑上跑不起来,他也无法拿到你的数据。

进一步,如果他要把库反编译,看汇编看懂你解密数据的逻辑,那就认了吧。

(我正在写一个电脑上的加密工具,但我也只打算加密素材,不加密数据)

点评

当然可行,壳子不自己开发也行  发表于 2019-2-22 19:23
素材这点....如果外壳是自己开发的,我有一个想法。素材都是base64。在乱码,壳子里面引后在解密,然后在使用。不知道是否可行?  发表于 2019-2-22 12:06
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-13 07:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表