セーブデータを暗号化する

今回は、過去に『Iniオブジェクトでセーブデータを保存する』記事で解説したセーブデータファイルを、改ざんを防ぐために内容を暗号化する方法について解説いたします。

本記事では、暗号化の手順のみを解説します。INIオブジェクトを使ってのセーブファイルの保存・読み込みについては当時の記事をご参照下さい。

Iniオブジェクトでセーブデータを保存する

■サンプルプログラム
今回の講座の内容のサンプルプログラムです。
cf25_blog_2016-05-22_ini_file_aes_encryption

前回の『Iniオブジェクトでセーブデータを保存する』記事で使用したサンプルに暗号化機能を追加したものになります。

■暗号化に使用するオブジェクト
文字列を暗号化することが可能なオブジェクトはいくつか存在しますが、今回はWindows, Flash, HTML5, Androidと、現状最も多くのプラットフォームに対応している『AESFusion object』を使用します。

cf25_blog_2016-05-22_aes_icon

『AESFusion object』はエクステンションマネージャーより入手可能です。

– エクステンションマネージャー ガイド|Clickteam 公式サイト
http://www.clickteam.jp/tutorials/extension-manager

■暗号化/復号化に使用するキー(鍵)を設定
cf25_blog_2016-05-22_aes_key
AESFusion objectの『Set key』アクションを使用して暗号化/復号化に使用するキーをセットします。
このキーを使用して暗号化/復号化がなされるので、流出しないよう注意して下さい。
cf25_blog_2016-05-22_aes_key2
16文字の英数の組み合わせで入力します。

■文字列を暗号化する
INIオブジェクトで文字列を外部ファイルへ書き込む際に、AESFusion objectで暗号化を行います。
cf25_blog_2016-05-22_aes_encrypt

cf25_blog_2016-05-22_aes_encrypt2
AESFusion objectの『Encrypt』関数を使います。文字列として格納する必要があるため、数値の書き込みであってもINIは『文字列を変更』を使い、『Str$』関数で数値を文字列へ変換します。

■文字列を復号化する
暗号化してINIファイルに書き込まれたデータを読み出す際は、元の内容へ戻す復号化を行います。
cf25_blog_2016-05-22_aes_decrypt
AESFusion objectの『Decrypt』関数を使います。文字列として返ってくるため、数値の場合は『Val』関数を使って数値へ変換します。

■暗号化されたINIファイル
保存されたINIファイルを開いて、このように暗号化された内容になっていることを確認します。
cf25_blog_2016-05-22_aes_encrypt3

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.