


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
cocos2d-x學習筆記:使用摘要算法進記錄存儲本文將探討如何使用摘要算法進行存檔校驗的方法。
準備工作摘要算法很多,算法內(nèi)容都是公開的。所以網(wǎng)絡(luò)上有很多現(xiàn)成的算法庫,最有名的是Crypto++,該庫支持大量對稱加密,非對稱加密,和摘要算法。不過這庫太龐大了,我們只是用一個簡單的摘要算法,就先不用這玩意了。我選擇了SHA1,打開后發(fā)現(xiàn)非常簡潔,只有兩個源代碼(sha1.cpp,sha1.h),還有一個是測試代碼(testsha1.cpp)。我們先新建一個工程名為TestSha,然后把源代碼導(dǎo)入。然后為了方便調(diào)試,我們需要printf,cocos2d-x中打開printf的方法如下:在代理函數(shù)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));//輸入數(shù)據(jù)sha1->addBytes(KEY,strlen(KEY));//輸入數(shù)據(jù)digest=sha1->getDigest();//獲取校驗碼SHA1::hexPrinter(digest,20);//打印16進制校驗碼到控制臺printf("\n");deletesha1;free(digest);現(xiàn)在我們寫一個讀取校驗#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());//輸入數(shù)據(jù)sha1->addBytes(KEY,strlen(KEY));//輸入數(shù)據(jù)digest=sha1->getDigest();//獲取校驗碼SHA1::hexPrinter(digest,20);//打印16進制校驗碼到控制臺printf("\n");deletesha1;free(digest);可以看到,校驗是沒有問題的破解測試現(xiàn)在我們手動修改存檔文件UserDefault.xml,將string_value的值修改為teststringcrack。校驗不通過,玩家修改了存檔。思路1.摘要算法即從原文中提取校驗碼,在讀取存檔時,進行校驗。如果原文修改,校驗碼變化,則校驗不通過。2.因為摘要算法都是公開的,在使用時,我們會在輸入待校驗數(shù)據(jù)時,多輸入一個key,這個key是隱藏在編碼中的,除非玩家有很高超逆向工程技術(shù),能反編并找到key,但我們一樣可以調(diào)整Key的算法,以及提前對數(shù)據(jù)樣本進行混淆。這種加密強度足以應(yīng)付一般單機游戲的開發(fā)了。網(wǎng)游存檔是在服務(wù)器端的,而且需要傳輸校驗,所以我們也不考慮本地存檔加密了。實際中的使用以上只是演示代碼,在實際使用時,我們還需注意:1.為了方便,演示中我只使用了字符串,對于bool,int等類型,你可以自己封裝函數(shù),進行校驗,這樣比較方便。2.在編寫的校驗代碼中,增加一個開關(guān)——隨時打開和關(guān)閉校驗。這樣做的好處是,在校驗關(guān)閉狀態(tài),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工安全隱患排查工具試題及答案
- 注冊土木工程師考試研究生課程試題及答案
- 制造業(yè)綠色供應(yīng)鏈管理在綠色物流中的綠色運輸車輛管理優(yōu)化報告
- 物理模型問題解析及答案2025年
- 2025年制造業(yè)數(shù)字化供應(yīng)鏈協(xié)同產(chǎn)業(yè)協(xié)同技術(shù)創(chuàng)新研究報告
- 查驗員考試題及答案
- 能源行業(yè)數(shù)字化轉(zhuǎn)型智能電網(wǎng)優(yōu)化:智能電網(wǎng)設(shè)備運維與健康管理報告
- 生鮮新零售行業(yè)2025年供應(yīng)鏈優(yōu)化與冷鏈物流解決方案報告
- 家具行業(yè)的市場競爭與產(chǎn)品設(shè)計創(chuàng)新相結(jié)合的研究試題及答案
- 控煙知識試題及答案解析
- 風電基礎(chǔ)施工方案
- ICD-10疾病編碼完整版
- 肩關(guān)節(jié)超聲檢查
- 畢業(yè)論文-中小企業(yè)防火墻的應(yīng)用
- 可穿戴式設(shè)備安全可靠性技術(shù)規(guī)范 腕戴式設(shè)備
- 內(nèi)科學動脈粥樣硬化和冠狀動脈粥樣硬化性心臟病
- ×××章程修訂對比表
- 《運算的意義》(教學設(shè)計)-2023-2024學年六年級下冊數(shù)學北師大版
- 高效養(yǎng)中蜂關(guān)鍵技術(shù)
- 廣州小學六年級英語下冊知識點歸納和習題(全冊)
- (正式版)JTT 1482-2023 道路運輸安全監(jiān)督檢查規(guī)范
評論
0/150
提交評論