It allows you to secure stored data in your game, and avoid problems with players cheating or trying to get free stuff by just modifying some file or system preferences.
For example, I’m working on a freemium game (the game is free, but you can buy stuff in it). I need to store somewhere secure which items the user bought. If I was using PlayerPrefs a malicious player could edit registry in Windows, or an ASCII file in OS X, Android and iOS. To prevent this, I developped “Secured PlayerPrefs”, it acts like PlayerPrefs but it stores a crypted and signed file.
It prevents someone who wants to cheat or “steal” items and virtual money.
It prevents people to exchange or copy their backup, to give items and virtual money to anyone else. (This is done by a 2-keys algorithm, the first key is defined in your program, the second is defined by the device itself)
If you need support or if you have feature requests, contact me here or go to http://taliwut.tumblr.com
nice approach to make playerprefs more secure! Just a question out of interest. On your Asset Store main image, I can see there’s a secret key hardcoded in the script. Wouldn’t it be possible to decompile the game code, get this key and reverse engineer the other key so they match?
It has been tested on iOS, Android, OS X and Windows
It should work everywhere, but I’m trying to test released version all devices I own.
I’m using my own file solution to store encrypted data. I also store versions history, and rollback to previous versions if the player try to manipulate the main save game (he will not be able to do it, so he will corrupt it).
Yes I’m using a compound key that is generated from SystemInfo.deviceUniqueIdentifier so users can’t exchange their save games.
Note: I’m planning to add a secured server backup / restore.
First, I didn’t tried iap and icloud with Secure PlayerPrefs.
I see no problems with iap.
But with icloud, I see one big problem: if the user got 2 iOS devices connected on the same iCloud account, and if you try to synchronize the output files from Secured PlayerPrefs plugin, it will not work because of the different device ids. A solution could be the integration of an optional “prime 31 icloud” support in Secured PlayerPrefs. But I don’t know if iCloud data storage is secure (I hope so) or if it could be a source of data manipulation.
I’m looking for beta testers for the new feature of “Secured PlayerPrefs” plugin: server synchonization. Contact me directly at taliwut gmail com or via PM. Users who bought it have priority.