Unity 安全地保存加载 Int

Unity Save load Int securely

我需要 Unity 的 C# 代码以某种安全的方式保存和加载一个 int,兼容:iOS、Android、Windows、Mac、Linux。它不一定非常安全,但至少玩家不能通过用记事本或类似的东西打开它来更改它。

我不在乎怎么做,或者它是否是超级加密安全的,或者只是简单转换数据的情况,是否使用播放器偏好转换为字节(一直试图无济于事)或者是否创建安装游戏的新文件以某种方式加密。只是一些有用的东西!

你应该看看这个插件: 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 类,因此您将不得不手动完成大部分工作。