ひっと

ActionScript MD5で暗号化する方法

~ Flashアプリ、ゲームのためのAS3サンプルプログラム集 ~

MD5を使った暗号化


pass123456という文字をMD5で暗号化してみました。
ただのテキストにしか見えませんが、これでも一応フラッシュアプリなのです・・・

MD5暗号化の使われ方

パスワードの暗号化などにMD5が使われます。
MD5というのは元の文字から疑似乱数を作成するアルゴリズムです。
MD5で暗号化しても元の文字へ復元出来ませんが、同じ文字を暗号化すれば同じ結果が得られます。

サーバーではMD5化されたパスワードを管理しておき、ログインの時にはパスワードをMD5にした結果で通信します。
こうすればデータ管理や通信に生のパスワードは使われないという仕掛けですね。

暗号機能ライブラリ as3Crypto

FlexSDK3.0には暗号化の機能が無いため外部の物を使います。

as3Crypto
http://code.google.com/p/as3crypto/

上記サイトからswcファイルをダウンロードします。

swcライブラリファイルの使い方

Flashdevelopで使う場合は「プロジェクトのプロパティ」→「コンパイラオプション」→「SWCLibraries」にswcファイルのパスを入れると使えます。

ActionScript サンプル ソースコード


package 
{
    import flash.display.Sprite;
    import flash.text.*;
    import flash.utils.ByteArray;
    
    import com.hurlant.crypto.Crypto;
    import com.hurlant.crypto.symmetric.*;
    import com.hurlant.crypto.hash.*;
    import com.hurlant.util.Hex;
    
    public class Main extends Sprite 
    {

        public function Main():void 
        {
            //MD5で変換したいパスワード
            var password:String = "pass123456";
            
            //パスワード文字列をHex文字列にしてからバイナリデータにする
            var passwordBin:ByteArray= Hex.toArray(Hex.fromString(password));
            
            //ハッシュアルゴリズムにMD5を指定
            var hash:IHash = Crypto.getHash("md5");

            //MD5で変換
            var result:ByteArray = hash.hash(passwordBin);

            //結果をテキストにして表示
            var t:TextField = new TextField();
            t.text = password + " ==> " + Hex.fromArray(result);
            t.x = 50;
            t.y = 140;
            t.width = 300;
            t.height = 20;
            addChild(t);
        }

    }

}

目次へ
52888