まずは検証用のデータを 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