我需要Unity的C#代码,以某种安全的方式保存和加载int:iOS,Android,Windows,Mac,Linux。它不一定非常安全,但至少玩家不能通过用记事本或类似的东西打开它来改变它。
我不在乎怎么样,或者它是否是超级加密的安全,或者只是简单地转换数据的情况,是否使用播放器prefs转换为字节(一直试图无效)或是否创建一个新的安装游戏的文件,以某种方式加密。只是有用的东西!
答案 0 :(得分:-1)
你应该看一下这个插件: https://www.assetstore.unity3d.com/en/#!/content/32357
免费且易于使用。您首先使用
初始化它ZPlayerPrefs.Initialize("somePasswordString", "someSaltString");
使用:
// 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类,因此您必须手动完成大部分工作。