Google

2010年7月18日日曜日

AS2でSHA-1

Appleの拒否で揺れるFlashですが、世の中まだまだActionScript2が生き残ってる場所があるもの。
私もそんなこんなでまだAS2を触る機会があります。

今回はそんなAS2で使えるSHA-1のライブラリをご紹介。
脆弱性はあるものの、私も仕事で少しお世話になりました。
配布しているサイトはこちら。

RICHINTERNET.BLOG

ここのリンクからSHA1-v1.0.zipを落としましょう。
MXMLのサンプルコードも別途あります。
今回はFlashCS3で動作テストをしてみます。

落とすとディレクトリが3階層できます。
これをFlashのプロジェクトルートにそのまま設置しましょう。
下の画像だと、flaファイルから掘ったところにSHA1.asがあります。



FlashはAS2で作成し、ステージ1のルートにいきなり書いてみましょう。


import de.richinternet.crypto.SHA1;
var base:String = "pukapuka-ahirusan";
var sha1:String = SHA1.encode(base)
trace(base + "のハッシュ値 = " + sha1);
getURL("http://localhost/sha1.php?data=" + sha1, "_self", "GET");

上記のような感じです。
起動時にSHA1を読み込み、"pukapuka-ahirusan"をハッシュ化し、phpに投げるいった処理です。
投げ先の指定はローカルホスト。
php側では同様にうめこみのsha1関数を使い、ダイジェスト認証の真似事をしてみます。


$str = 'pukapuka-ahirusan';
$valid = $_GET["data"];
if (sha1($str) == $valid)
{
    echo("一致です。");
}
else
{
    echo("不一致です。");
}

xamppを使うと簡単にphpを設置できますね。
これで成功すれば「一致です」が表示されます。

実験では見事表示されました。
うまく使うと実用に耐え得るレベルになりますね。

今回使用したサンプルはこちら。flaとphpの構成です。
サンプル

0 件のコメント:

コメントを投稿