cocos2dx之CCUserDefault及其資料進行加密解密
CCUserDefault是Cocos2d-x引擎提供的持久化方案,其作用是儲存所有遊戲通用的使用者配置資訊,例如音樂和音效配置等。為了方便起見,有時我們也可以用CCUserDefault來儲存金幣數目這種簡單的資料項。
這裡要注意, CCUserDefault中有個 flush()的函式,這個用來將資料寫入xml檔案中,也就是說當你使用setXX的一些函式後記得提交(呼叫一下flush函式)
CCUserDefault可以看做一個永久儲存的字典,本質是一個XML檔案,將每個鍵及其對應的值以節點的形式儲存到外存中。值只支援int和float等基本型別.
CCUserDefault::sharedUserDefault()->setBoolForKey("exit", true);
CCUserDefault::sharedUserDefault()->flush();//這行一定要加上,不然下次啟動遊戲的時候,該資料就沒有儲存。
bool bexit = CCUserDefault::sharedUserDefault()->getBoolForKey("exit");
這裡要注意, CCUserDefault中有個 flush()的函式,這個用來將資料寫入xml檔案中,也就是說當你使用setXX的一些函式後記得提交(呼叫一下flush函式)
XML的一個很嚴重的問題是明文儲存,儲存在外部的資料一旦被截獲,就將直接暴露在攻擊者面前,小則篡改使用者資料,大則洩露使用者隱私資訊。因此,對儲存在檔案中的資訊加密不可忽視。
幸運的是,前面我們已經設計好了序列化和反序列化過程,只要在其中加入合適的加密和解密演算法,即可保證我們的資料不會被輕易竊取。這裡我們只使用一個簡單的編碼輪換來加密,相關程式碼如下:
void encode(string &str)
{
for(int i = 0; i < str.length(); i++) {
int ch = str[i];
ch = 0xff & (((ch & (1 << 7)) >> 7) & (ch << 1));
str[i] = ch;
}
}
void decode(string &str)
{
for(int i = 0; i < str.length(); i++) {
int ch = str[i];
ch = 0xff & (((ch & (1)) << 7) & (ch >> 1));
str[i] = ch;
}
}
相關文章
- Python使用AES進行鹽值加密和解密Python加密解密
- Flutter 的加密和解密資料Flutter加密解密
- 資料加密-國密SM2對資料進行加密加密
- 探討NET Core資料進行3DES加密或解密弱金鑰問題3D加密解密
- 使用Base64進行string的加密和解密加密解密
- dbms_obfuscation_toolkit(資料加密解密)加密解密
- 後臺對Json資料加密、解密JSON加密解密
- win10加密資料夾如何解密_win10已加密的資料夾如何解密Win10加密解密
- 如何在Python中加密和解密資料Python加密解密
- 前端加密解密之Crypto.js前端加密解密JS
- cocos2dx之引入Sqlite3資料庫SQLite資料庫
- netty系列之:對聊天進行加密Netty加密
- Jmeter使用beanshell對資料進行加密傳輸JMeterBean加密
- 加密解密加密解密
- AES實現財務資料的加密解密儲存加密解密
- PostgreSQL 資料加密之 pgcryptoSQL加密GC
- PHP加密解密PHP加密解密
- js加密解密JS加密解密
- AES加密解密加密解密
- AES 加密&解密加密解密
- python對介面中的資料進行md5加密Python加密
- 資訊保安:資料加密實戰!對專案中資料使用MD5演算法進行加密加密演算法
- https與http區別以及https資料加密解密過程HTTP加密解密
- nodeJS之crypto模組公鑰加密及解密NodeJS加密解密
- cocos2dx之CCTextureCache
- cocos2dx之CCSpriteFrameCache
- php mcrypt 加密 解密PHP加密解密
- Javascript 加密解密方法JavaScript加密解密
- AES CBC 加密解密加密解密
- RSA加密與解密加密解密
- RSA加密解密(無資料大小限制,php、go、java互通實現)加密解密PHPGoJava
- 使用網頁前端JavaScript使用RSA對長字串進行加密及測試解密,1024位可對長字串進行網頁前端JavaScript字串加密解密
- 對於重要的資料檔案,用什麼方法進行加密?加密
- 如何在HarmonyOS對資料庫進行備份,恢復與加密資料庫加密
- .NET進階篇04-Serialize序列化、加密解密加密解密
- 使用Atlas進行後設資料管理之Glossary
- Java加密解密瞭解Java加密解密
- android加密解密完美教程Android加密解密