cocos2dx-lua 能不能用AMF3来加密lua源文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2dx-lua 能不能用AMF3来加密lua源文件相关的知识,希望对你有一定的参考价值。

RT, 如能这么做该如何配置 THX

你用的是cocos2dx 3.2版本吗?如果是的话,加密就会比较简单了。

官方文档详见:http://cocos2d-x.org/wiki/Cocos_luacompile

.lua文件编译为.luac文件[.lua to .luac]
在项目文件目录下尝试
cocos luacompile -h查看帮助信息
cocos luacompile -s ./projects/MyLuaGame/src -d ./projects/MyLuaGame/src -e -k MyLuaKey -b MyLuaSign

./projects/MyLuaGame/src--》lua源文件目录

./projects/MyLuaGame/src--》生成luac存放目录

关于MyLuaKey及MyLuaSign的设置,见AppDelegate.cpp

stack->setXXTEAKeyAndSign("2dxLua", strlen("2dxLua"), "XXTEA", strlen("XXTEA"));

修改对应的key及sign即可。
参考技术A 你用的是cocos2dx 3.2版本吗?如果是的话,加密就会比较简单了。

官方文档详见:http://cocos2d-x.org/wiki/Cocos_luacompile

.lua文件编译为.luac文件[.lua to .luac]
在项目文件目录下尝试
cocos luacompile -h查看帮助信息
cocos luacompile -s ./projects/MyLuaGame/src -d ./projects/MyLuaGame/src -e -k MyLuaKey -b MyLuaSign

./projects/MyLuaGame/src--》lua源文件目录

./projects/MyLuaGame/src--》生成luac存放目录

关于MyLuaKey及MyLuaSign的设置,见AppDelegate.cpp

stack->setXXTEAKeyAndSign("2dxLua", strlen("2dxLua"), "XXTEA", strlen("XXTEA"));

修改对应的key及sign即可。

(非)对称加密

对称加密算法:加密和解密用同一个秘钥

优点:加解密速度快,性能开销小   [适合加密大量数据]

缺点:密钥分发难(如果通讯方数量庞大,实现共享秘钥困难),不能实现抗抵赖性(缺少签名机制),存在被抓包破解的风险

非对称加密算法:加密和解密用不同的秘钥

公钥加密的数据只能用私钥解密,用私钥加密的数据只能用公钥解密

私钥永远能掌握在自己手中

优点:秘钥分发容易(存在对外公开的公钥,和永远不对外公开的私钥,无法从一个密钥推导出另一个),可实现抗抵赖性
缺点:速度慢,效率低(计算复杂|性能开销大),不适合加密大量数据

数字信封

  1. A获得收件人的公钥

  2. A创建一个随机的对称秘钥

  3. A使用加密秘钥和对称秘钥算法将明文数据转换为密文数据

  4. A使用B的公钥将机密秘钥转换为密文机密秘钥

  5. A将密文数据和密文机密秘钥一起发送给收件人

  6. B使用私钥将密文机密秘钥转换为明文

  7. B使用明文机密密码将密文数据转换为明文数据

缺点:对于B来说完整性无法校验,身份无法验证

                  可引入签名机制解决问题                             

引入签名的秘钥交换

  1. A本地产生会话秘钥(123)

  2. 用B的公钥加密123(会话秘钥)

  3. 对原始数据(Huawei)数据进行哈希运算(hash)

  4. A用私钥加密hash得到abc

  5. A发送密文Huawei,密文对称秘钥,签名abc

  6. B用私钥解密123(密文会话秘钥)

  7. B用解密后的123解密Huawei,得到明文Huawei

  8. B对解密后的Huawei做哈希,后使用A的公钥解密abc,会得到一个hash,如果数据一样则没有被篡改,真的是A发的

自我思考

常见的对称加密算法

DES、3DES、AES

除了RSA还有什么非对称加密算法?

DSA,ECC,背包算法

非对称怎么满足可靠性、完整性?

可靠性:双方需要线具备对方的公钥,通过对方的公钥加密,只有对方的私钥才能解密,而私钥永远掌握在自己手中,通过公私钥加解密,即实现了数据加密也实现了数据源认证,确保了可靠性
完整性:通过签名,用私钥加密一个HASH值,对方收到以后,用自己的公钥解密,解密出来之后再计算HASH值,可以认证数据的完整性

如何实现源认证和完整性认证?证书申请方式

证书申请方式:1.在线2.离线

对称秘钥和非对称秘钥算法有哪些?

对称加密算法DES\3DES\AES等;非对称加密算法:RSA DSA ECC

Hash函数有特点?

(1)不可逆推(2)相同输入得到相同输出(3)定长输出(4)雪崩效应[少量信息位变化引起信息摘要许多位变化]

SM3是对称还是非对称?

国密算法!既不是对称也不是非对称,是一种hash函数!

什么是签名?私钥有什么特点?

签名:私钥加密的HASH值。跟公钥成对出现

举几个使用非对称秘钥算法的场景?

电商场景|网上银行|HTTPS

DES使用的秘钥是多少位?

用56位的秘钥加密64位的明文

——————————————————————

我华为面试时就考到了这个.....

面试官大概问的就是:通过采取"签名"介入的方法还会遇到什么安全问题?如何解决?

我的回答:第一个问题我忘记怎么回答的了。解决方案是通过接入一个中立机构,如CA机构。

随后面试官追问:如果引入了CA机构,那还会遇到什么问题?

我回答:必须保证CA机构的真实性

以上是关于cocos2dx-lua 能不能用AMF3来加密lua源文件的主要内容,如果未能解决你的问题,请参考以下文章

为啥公钥加密只能私钥解密而不能公钥解密

AMF3编码

已知明文和密文,能不能推出加密方式

文件加密后不能解密

cocos2dx-lua 裁剪ClippingNode

能不能破解这个DLL