まずは検証用のデータを PHP で作成。以下のコマンドを実行。
php -r 'echo sha1("apple")."\n";'
結果はこちらは
d0be2dc421be4fcd0172e5afceea3970e2f3d940
【 C# でのサンプル】
※バイナリのままだと画面に表示出来ないのでBASE64に変更しています。
using UnityEngine; using System.Collections; using System.Text; using System.Security.Cryptography; public class MyGUI : MonoBehaviour { string txt = ""; void OnGUI () { GUI.TextField(new Rect(10, 10, 400, 50), txt); if (GUI.Button(new Rect(10, 70, 200, 100), "convert")) { SHA1 sha = new SHA1CryptoServiceProvider(); UTF8Encoding ue = new UTF8Encoding(); byte[] planeBytes = ue.GetBytes("apple"); byte[] hashBytes = sha.ComputeHash(planeBytes); string hashStr = ""; foreach(byte b in hashBytes) { hashStr += string.Format("{0,0:x2}", b); } txt = hashStr; } } }
実行した所、 console に表示された文字は d0be2dc421be4fcd0172e5afceea3970e2f3d940 。正しく、 SHA1 でハッシュ化された値が取得できました。
関連情報
Unity で SHA256 を使う方法 - 強火で進め
http://d.hatena.ne.jp/nakamura001/20120928/1348841124