Cocos2d-x 资源加密解密实践总结,cocos2d-x加密解密

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 11:31 我要评论(0)

Cocos2d-x 资源加密解密实践总结,cocos2d-x加密解密

本文乃Siliphen原创,转载请注明出处:http://blog.csdn.net/stevenkylelee

本文针对的是cocos2d-x 3.4 版本进行研究。

做加密解密的思路

加密解密算法的简单介绍

首先,加密解密应该是一个单独的话题,一般不会涉及具体使用的引擎、框架和技术。

加密算法有Base64,DES等。

Base64的原理类似于凯撒密码,啥是凯撒密码呢,就是一个字符用另一个字符来代替。

比如:a用i代替,b用k代替,以此类推。加密和解密的过程就是一个互相映射的过程。

DES是一种使用密钥的加密算法

DES和Base64这种无密钥的算法在使用上的区别是:

DES算法本身是可以不保密的,只要保密密钥即可,密钥才是解密的关键。

Base64如果用于加密的话,算法本身就是密钥。要保密算法

MD5,SHA等是摘要算法

Base64,DES都可以把密文还原出明文。

而MD5,SHA则不能对算法作用后的输出还原出原始数据。

摘要算法一般做身份验证。

我们做资源加密是要选择能把密文还原出明文的算法

设计自己的加密解密算法

这属于密码学的内容了,可深可浅。

可以借鉴凯撒密码的原理自己对每个字节的内容进行映射来加密。

也可以对1字节,2字节,4字节的数据,用某个数进行异或运算来加密。

异或的特性是,用数A对内容B进行异或得到内容C,再用数A对内容C异或可以得到内容B。

这个特性可以被用来加密。同时,数A的作用就是密钥了。

设计的加密算法不同,加密算法的使用的接口也不同。

如果是用上面的2种思路做加密算法的话,加密算法的实现可以“in place”操作,

就是可以直接在密文所在的内存进行解密,不单独分配内存来保存解密后的数据。

如果加密算法很复杂,无法“就地还原”,就需要新申请内存来保存解密数据。

当然,执行速度一般是”就地还原“快。

我觉得,如果可以的话,最好是自己设计加密算法

使用现成的DES之类的算法,密钥是关键。

如果是自己设计一个用密钥加密的算法,密钥和算法本身都是不公开的。

破解者要获取资源明文要经过如下步骤:

1.在程序中找到密钥的常量。

2.看懂反出来的汇编还原出算法,或者想办法利用加密算法的汇编代码

其中步骤2会加大解密者解密的难度,这是自己设计加密算法比用现成的DES之类著名算法的好处。

加密解密的运用机制

我见过有一些人加密是对字段内容进行加密。

比如,他用xml保存数据,他只对保存的值进行加密。

内容类似这样 <Entity Hp = "密文" AttackValue = "密文" >

这并不是一种好的运用加密的方式,因为这种方式会:

1.透露程序的配置文件结构。XML、json等。

2.透露了程序可能使用的数据结构。看以上内容可猜想Entity实体类有2个字段,Hp(血量),AttackValue(攻击力)

更彻底的加密方式是,对整个xml、json等文件进行加密。

这样别人就不会知道关于你的数据的一丁点信息。

这种做法不是直接用数据解析库封装的类似LoadFile的函数直接读取文件。

而是,先把加密文件用文件读取方法读入内存,在内存解密后,再把解密数据传给解析库的解析函数。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...