as3crypto: MD5やSHA、Base64機能を提供するActionScript3用暗号&ハッシュ化オーポンソースのライブラリ

「as3crypto」というライブラリでは、「ActionScript Libraryリスト」中にもあるんけど、ActionScript3上で、MD5や、SHA1,224,256、RSA、AES, DES, 3DES, BlowFishなどの暗号機能を提供するオーポンソースのライブラリです。暗号化方式だけでなく、Base64エンコード/デコード機能も提供されています。バイナリ列をBase64化してサーバに送出するような場合に使えますね。MD5やBase64はいざというときには必ず必要になるので、是非覚えておきましょう。「as3crypto」はBSDライセンスです。

・下記の図はデモのスクリーンショットです。

as3crypto

・メインの機能の紹介:

  • Protocols: TLS 1.0 support (partial)
  • Certificates: X.509 Certificate parsing and validation, built-in Root CAs.
  • Public Key Encryption: RSA (encrypt/decrypt, sign/verify)
  • Secret Key Encryption: AES, DES, 3DES, BlowFish, XTEA, RC4
  • Confidentiality Modes: ECB, CBC, CFB, CFB8, OFB, CTR
  • Hashing Algorithms: MD2, MD5, SHA-1, SHA-224, SHA-256
  • Paddings available: PKCS#5, PKCS#1 type 1 and 2
  • Other Useful Stuff: HMAC, Random, TLS-PRF, some ASN-1/DER parsing

・以下は一部の使い方です。

■base64

import com.hurlant.util.Base64;
// 文字列をBase64エンコード
var encoded:String = Base64.encode(’ほげ’);
// ByteArrayをBase64エンコード
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(”ほげほげ”);
var encoded2:String = Base64.encodeByteArray(bytes);
// Base64にエンコードされた文字列をデコードして元の文字列に
var decoded:String = Base64.decode(encoded);
// Byte列にデコード
var decodedBytes:ByteArray = Base64.decodeToByteArray(encoded);

■ Hex

import com.hurlant.util.Hex;
// 16進数を与えByteArrayに
var byte:ByteArray = Hex.toArray(”1F”);
// 復元
var str:String = Hex.fromArray(byte);
// 引数で与えられた16進数コードの文字列が対応するアスキーコードの文字列に変換

■ Hash

MD5やSHA1のようなHashを使う
import com.hurlant.crypto.Crypto;
import com.hurlant.crypto.symmetric.*;
import com.hurlant.crypto.hash.*;
var hash:IHash = Crypto.getHash(”md5″); // sha sha1 sha224 sha256
var result:ByteArray = hash.hash(Hex.toArray(Hex.fromString(”hoge”)));
Hex.fromArray(result);

■ Cipher

cipherを取得してencrypt
var cipher:ICipher = Crypto.getCipher(”simple-aes128-ctr”, key);
cipher.encrypt(data);
var res:String = Hex.toString(”1F”);
// 引数で与えられた文字列のアスキーコードを16進数コードに
var res2:String = Hex.fromString(”26″);

関連リンク

http://code.google.com/p/as3crypto/ 公式サイト

Leave a Reply

Your email address will not be published. Required fields are marked *