Cocos2d-xゲームでデータが改ざんされていないかどうかを確かめるためにデータのハッシュ値を取って照合する手法があり、ハッシュ計算が必要になった時に使用するライブラリですが、最近のCocos2d-xにはすでにハッシュ計算用のライブラリが入っています。従って以前のように、外部からライブラリを取得して自分で追加する必要がありません。ハッシュの計算方法と(Win32プロジェクトへの)導入方法とを紹介したいと思います。MacのXCodeは持ってないので説明除外MD5MD5単体を使う場合OpenSSLの付属のMD5生成ライブラリを使うSHA-256簡単に使えるようにライブラリ化HashUtilクラスHashUtil.hppHashUtil.cppStringUtilクラスStringUtil.hppStringUtil.cpp使い方MD5最近はイケてない過去の遺物扱いを受けていますがゆるーく内容をバリデーションする程度ならまだ使えます。MD5単体を使う場合Cocos2d-xのライブラリのexternalフォルダに骨董品レベルのMD5ライブラリが入っているのでその使い方です。すごく簡単に使えるので「MD5だけ」に用事がある人はこっちをリンクすればいいと思います。以下をincludeします。"external/md5/md5.h"実装は以下の通りです。5594c8cb0b709eb9b7a9bf13ea6f673f}簡単ですね?但しwin32の場合VisualStudioのプロジェクトに"md5.c"を追加する必要があります。(Androidは何もしないでOKです。以下画像の通りファイルを追加してください。OpenSSLの付属のMD5生成ライブラリを使う上記とは別にOpenSSLにハッシュ生成アルゴリズムが付属していてそこでもMD5があるのでそれを使用する場合以下のコードを記述します。Cocos2d-x上での使い方として説明していますが、OpenSSL自体はCocos2d-xでなくとも動くため使用方法は汎用的なものですのでこれ以外のほかのC++アプリケーションでも使用できます。ヘッダーのインクルードから。各プラットフォームで実装が異なるようなのでそれぞれ分岐してincludeを行います。"external/openssl/include/win10/openssl/md5.h"#endifまた、Androidはライブラリの参照が自動設定されていますが、Win32は手作業でスタティックライブラリを以下手順にて追加する必要があります。以下を追加libssl.liblibcrypto.libハッシュ計算のコードは以下の通りです。5594c8cb0b709eb9b7a9bf13ea6f673f}SHA-256現在も通用するハッシュアルゴリズムで使用を推奨されています。最近は何も考えずこれ使っておけばOKという感じです。これはOpenSSLに付属しているライブラリを使用するしかありません。使い方はOpenSSL版のMD5と全く同じです。MD5でリンク済みとして説明していきます。4c9503d051d72c83f1299798a28165a7ab80f3628c9c39cc103793e2e493f92e}簡単に使えるようにライブラリ化ただしこのままでは記述量が多く少し使いづらいので薄いライブラリを作成してみました。コンテンツが手元でメモリ上に全部展開されているケースしかないと思うのでメソッド一ひとつでハッシュ化する処理になります。HashUtilクラスHashUtil.hppヘッダー以下の通りです。msg);};HashUtil.cpp実装側です。SHA256_DIGEST_LENGTH);}StringUtilクラスたびたびコードに出てくるStringUtil::toHexの実装は以下の通りです。StringUtil.hppヘッダー側です。文字列の汎用操作を提供します。str;}StringUtil.cpp実装側以下の通りです。上記ライブラリの使い方ですが、以下の通り再処理は簡単化されているかと思います。4c9503d051d72c83f1299798a28165a7ab80f3628c9c39cc103793e2e493f92e}めでたしめでたし。»Profile受託ソフト会社員でWin系業務屋。趣味でCocos2d-x/C++を触っています。etc...主に受託・開発ネタ、Windowsの事、Srellaris、ゲーム制作の進捗の事を喋ります。4.0がリリースされたみたいCocos2d-xをやめてUnityに移行した話@2019冬C#のDateTimeとC++のtime_tを相互変換するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。