Skip to content

tetr4lab/CryptoPlayerPrefs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CryptoPlayerPrefs / 簡易なセーブデータの暗号化

Encryption of unity save data
tags: Unity C#

前提

  • unity 2018.4.1f1、2018.4.32f1
  • System.Security.Cryptography BlockSize 128bit, KeySize 256bit, Mode CBC, Padding PKCS7

できること

  • 標準のPlayerPrefsを置き換える形で、セーブデータの暗号化ができます。
  • PlayerPrefsを継承するので、クラス名を付け替えるだけで置き換えが完了します。
  • クラスオブジェクトを扱うことが可能です。(GetObject<T> ()SetObject<T> ())

導入

  • 最小限必要なアセットは、Crypto.csCryptoPlayerPrefs.csです。
  • Sample.csは使用例です。シーンSampleSceneで挙動を確認できます。

簡単な使い方

  • PlayerPrefsの代わりにCryptoPlayerPrefsを使用します。
    • クラス名が異なる以外は同じ使い方です。
  • 鍵は自動生成することも、任意に定めることもできます。
    • Sample.csには、切り替えスイッチがあります。
  • 鍵は、何処かに保存しておく必要があります。例えば…
    • ソース中でハードコーディングする
    • 難読化してPlayerPrefsでセーブする
    • Fixした画像データの一部を使用する
  • GetObject<T> ()SetObject<T> ()を使う対象には、[Serializable]アトリビュートの指定が必要です。
    • 具体的には、Sample.csを参照してください。
    • このセーブデータは、.NETのバージョンに依存しており、異なるバージョン間では互換性が保証されません。

開発途中はセーブデータの内容を見たい

  • CryptoPlayerPrefs.cs冒頭の#define CRYPTOをコメントアウトすると、暗号化を行いません。
    • 素のPlayerPrefs+オブジェクト拡張の挙動になります。

【参考】#define 触るの面倒なんだけど…

Releases

No releases published

Packages

No packages published

Languages