


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
cocos2d-x学习笔记:使用摘要算法进记录存储本文将探讨如何使用摘要算法进行存档校验的方法。
准备工作摘要算法很多,算法内容都是公开的。所以网络上有很多现成的算法库,最有名的是Crypto++,该库支持大量对称加密,非对称加密,和摘要算法。不过这库太庞大了,我们只是用一个简单的摘要算法,就先不用这玩意了。我选择了SHA1,打开后发现非常简洁,只有两个源代码(sha1.cpp,sha1.h),还有一个是测试代码(testsha1.cpp)。我们先新建一个工程名为TestSha,然后把源代码导入。然后为了方便调试,我们需要printf,cocos2d-x中打开printf的方法如下:在代理函数boolAppDelegate::applicationDidFinishLaunching()里开头添加以下代码:_tsetlocale(LC_ALL,_T(""));::AllocConsole();::freopen("conout$","w",stdout);别忘了加头文件#include<tchar.h>然后你就可以使用printf啦,哇咔咔。
如何用SHA1做存档校验我们使用如下代码写入存储记录#defineTEXT1"teststring"#defineKEY"goldlion"SHA1*sha1;unsignedchar*digest;CCUserDefault*save=CCUserDefault::sharedUserDefault();save->setStringForKey("string_value",TEXT1);sha1=newSHA1;sha1->addBytes(TEXT1,strlen(TEXT1));//输入数据sha1->addBytes(KEY,strlen(KEY));//输入数据digest=sha1->getDigest();//获取校验码SHA1::hexPrinter(digest,20);//打印16进制校验码到控制台printf("\n");deletesha1;free(digest);现在我们写一个读取校验#defineTEXT1"teststring"#defineKEY"goldlion"SHA1*sha1;unsignedchar*digest;CCUserDefault*save=CCUserDefault::sharedUserDefault();std::stringstr=save->getStringForKey("string_value");sha1=newSHA1;sha1->addBytes(str.c_str(),str.length());//输入数据sha1->addBytes(KEY,strlen(KEY));//输入数据digest=sha1->getDigest();//获取校验码SHA1::hexPrinter(digest,20);//打印16进制校验码到控制台printf("\n");deletesha1;free(digest);可以看到,校验是没有问题的破解测试现在我们手动修改存档文件UserDefault.xml,将string_value的值修改为teststringcrack。校验不通过,玩家修改了存档。思路1.摘要算法即从原文中提取校验码,在读取存档时,进行校验。如果原文修改,校验码变化,则校验不通过。2.因为摘要算法都是公开的,在使用时,我们会在输入待校验数据时,多输入一个key,这个key是隐藏在编码中的,除非玩家有很高超逆向工程技术,能反编并找到key,但我们一样可以调整Key的算法,以及提前对数据样本进行混淆。这种加密强度足以应付一般单机游戏的开发了。网游存档是在服务器端的,而且需要传输校验,所以我们也不考虑本地存档加密了。实际中的使用以上只是演示代码,在实际使用时,我们还需注意:1.为了方便,演示中我只使用了字符串,对于bool,int等类型,你可以自己封装函数,进行校验,这样比较方便。2.在编写的校验代码中,增加一个开关——随时打开和关闭校验。这样做的好处是,在校验关闭状态,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省枣庄三中2024-2025学年高三寒假开学综合检测试题含解析
- 罗定职业技术学院《智能仪器设计技术》2023-2024学年第二学期期末试卷
- 2024-2025学年广东省佛山市南海区南海实验中学初三最后一模化学试题试卷含解析
- 国学传统知识比赛
- 幼儿园文本格式规范培训
- 2024年6月《阿房宫赋》知识图谱驱动的个性化学习路径
- 数字化教育的可持续发展模式
- 2025年煤炭生产经营单位(安全生产管理人员)证模拟题库及答案
- 员工内驱动培训
- 幼儿园获奖公开课:小班体育《过障碍物(彩旗飘飘)》课件
- LS-MDG-用户操作手册-物料主数据流程-20181103-V1.0
- 年会颁奖晚会颁奖盛典简约PPT模板
- 绥江县农村饮水安全工程水质检测中心建设方案
- 钳工-实操技能试题
- 中国传统故事英文花木兰二篇
- GB/T 3091-2008低压流体输送用焊接钢管
- GB/T 22004-2007食品安全管理体系GB/T 22000-2006的应用指南
- 上消化道早癌筛查须知
- 永大新梯种Y15电梯调试手顺及故障码
- DB32-T 4416-2022《高延性纤维增强水泥基复合材料加固砌体结构应用技术规程》
- 第5课《孔乙己》课件(共19张ppt) 部编版语文九年级下册
评论
0/150
提交评论