As3Crypto 라이브러리를 사용한 암/복호화 (AES CBC 128BIT PKCS5)
package { import com.adobe.crypto.MD5; import com.hurlant.crypto.Crypto; import com.hurlant.crypto.symmetric.ICipher; import com.hurlant.crypto.symmetric.IPad; import com.hurlant.crypto.symmetric.IVMode; import com.hurlant.crypto.symmetric.PKCS5; import com.hurlant.util.Base64; import com.hurlant.util.Hex; import flash.utils.ByteArray; public class As3Crypto { public static var ENC_KEY:String = MD5.hash("암호키"); public static var ENC_IV:String = MD5.hash("IV키"); public static function encrypt(str:String):String { var data:ByteArray = Hex.toArray(Hex.fromString(str)); var kdata:ByteArray = Hex.toArray(ENC_KEY); var pad:IPad = new PKCS5(); var cipher:ICipher = Crypto.getCipher('aes-128-cbc', kdata, pad); pad.setBlockSize(cipher.getBlockSize()); if(cipher is IVMode) { var ivmode:IVMode = cipher as IVMode; ivmode.IV = Hex.toArray(ENC_IV); } cipher.encrypt(data); return Base64.encodeByteArray(data); } public static function decrypt(str:String):String { var data:ByteArray = Base64.decodeToByteArray(str); var kdata:ByteArray = Hex.toArray(ENC_KEY); var pad:IPad = new PKCS5(); var cipher:ICipher = Crypto.getCipher('aes-128-cbc', kdata, pad); pad.setBlockSize(cipher.getBlockSize()); if(cipher is IVMode) { var ivmode:IVMode = cipher as IVMode; ivmode.IV = Hex.toArray(ENC_IV); } cipher.decrypt(data); return Hex.toString(Hex.fromArray(data)); } } }