2015-11-03 22 views
1

我需要Unity的C#代碼,以一些安全的方式保存和加載int,它們兼容:iOS,Android,Windows,Mac,Linux。它不必是超級安全的,但至少玩家不能通過用記事本或類似的東西打開它來改變它。Unity安全地保存負載Int

我不在乎如何,或者它是超級加密的安全,還是隻是簡單地轉換數據,是否使用播放器首選項轉換爲字節(嘗試無效)或是否創建安裝遊戲的新文件以某種方式加密。只是有用的東西!

回答

0

你應該看看這個插件: https://www.assetstore.unity3d.com/en/#!/content/32357

免費和易於使用。你有

ZPlayerPrefs.Initialize("somePasswordString", "someSaltString"); 

首先初始化它給useit:

// Write 
ZPlayerPrefs.SetInt("foo", 10); 
// Read 
int i = ZPlayerPrefs.GetInt("foo", -1 /*default value*/); 

加密使用有相當弱(DES),但如果你說你不需要它的超級安全的,會做。它可以在所有平臺上運行,因爲它使用PlayerPrefs作爲跨平臺的後端。

這裏也有類似的東西http://forum.unity3d.com/threads/playerprefs-encryption.26437/ 但它很脆弱,只是MD5校驗和一些鹽來檢查沒有人與你的數據混淆。

如果你需要強大的加密,我建議你檢查一下SOOMLA框架,它使用數據庫本地實現AES加密KeyValueStorage。 在沒有本地代碼的情況下在C#中添加更強大的加密可能是一個挑戰,因爲Mono沒有實現許多System.Security.Cryptography類,因此您必須手動完成大部分工作。