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);
}
}
}