• ベストアンサー

画像ファイルの暗号・復号化

ゲームを作っているのですが、それに使う画像ファイルを暗号化したいです。 むき出しのままだと、所謂ネタバレ的なCGも簡単に見れてしまうので……。 自分の知識では、せいぜい拡張子を変えて誤魔化すぐらいしか出来ません。 ただ、それでは流石にみすぼらしいというか……。 分かる人なら簡単に解けてしまうようなもので構いませんので 教えて頂ければ幸いです。 ちなみに、JPEGとPNGファイルの暗号・復号化です。

質問者が選んだベストアンサー

  • ベストアンサー
  • gungnir7
  • ベストアンサー率43% (1124/2579)
回答No.2

以前ゲーム開発で使っていた手法を 目的のPINGなりJPEGなりを暗号化する独立したツールを作ります。 例えば全部のバイトに1を足すとか、ビットを反転させるとか。 最後の1ビットを反転させただけでも、もう解読不能です。 暗号化したものはバイナリファイルとして出力します。 この辺のルールを決めておけばデコードルーチンは反対の処理をすればいいので楽です。 必要枚数分のCGのバイナリファイルができます。 それをマージして1つの巨大なデータファイルにします。 1つにまとめると余計に正体が分かりにくくなります。 このデータファイルをゲーム開始時にロードさせるなり、 途中でロードさせるなり、ゲーム内に埋め込むのはそちらで決めて下さい。 市販のゲームはたいていこの方式を用いています。

ryosan991
質問者

お礼

回答有難うございます。 早速試してみたいと思います。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

JPEG なり PNG なり、元画像のバイナリ先頭に独自ヘッダ (例えば16バイト程度)をくっつけ、さらに拡張子も変える。 面倒なら、ファイルシグニチャを1バイト書き換えるだけでもいい。 多くの画像ビューアは、画像のバイナリ先頭で画像フォーマットを 特定するから、ここを書き換えただけで読み込めなくなります。 実際、ファイルシグニチャを1バイト書き換えただけで 「Windows 画像と FAX ビューア」では表示できなくなりました。 読み込む際には17バイト目から読み込むとか・・あと略。 思いつきです。 でも、某有名ネットゲームですら「拡張子を変えただけ」って場合 が多いですよ。

ryosan991
質問者

お礼

回答有難うございます。 早速試してみたいと思います。 ちなみに書き忘れましたが、.NETです。

関連するQ&A