En muchas ocasiones tenemos información que debemos guardar y que no queremos que sea accesible directamente por el usuario. Por ejemplo, archivos de configuración de aplicaciones AIR o archivos de texto con variables. La solución es escriptar ese texto para que no sea entendible si el usuario accede a él directamente.
Para encriptar un texto en actionscript 3 lo primero que hacemos es descargarnos esta librería que nos permitirá utilizar varios algoritmos de encriptación.
Ahora nos crearemos una clase que utilice el cifrado en TEA. Este algoritmo requiere de un texto clave que tendrá que ser el mismo a la hora de encriptar y a la hora de desencriptar.
Código :
package com.cristalab.utils.security
{
import com.meychi.ascrypt3.TEA;
//-------------------------------------------------------------
public class EncryptUtils
{
internal static const ENCRYPTION_KEY:String = "mi_contraseña_de_encriptado";
//-------------------------------------------------------------
public static function encryptString(s:String):String
{
var tea:TEA = new TEA();
var encryptedString:String = tea.encrypt(s, ENCRYPTION_KEY);
return encryptedString;
}
public static function decryptString(s:String):String
{
var tea:TEA = new TEA();
var decryptedString:String = tea.decrypt(s, ENCRYPTION_KEY);
return decryptedString;
}
}
}La utilización de esta clase para encriptar texto sería:
Código :
import com.cristalab.utils.security; var texto:String = "Lo que sea"; var texto_encriptado:String = EncryptUtils.encryptString(texto);
Y para desencriptar:
Código :
var texto:String = EncryptUtils.decryptString(texto_encriptado);
En esta clase de ejemplo la palabra clave para codificar esta añadida dentro de la misma clase, pero podríamos haber creado la clase haciendo que ese String le viniese como parámetro y así utilizar diferentes keys para diferentes proyectos. Lo que ha de estar claro es que para desencriptar un texto deberemos utilizar el mismo key que utilizamos para encriptarlo.

Buen tip
Nunca había visto una implementación en AS3. Muy cool Z.
Xyrer-blog :
MD5 sería más para proteger contraseñas en una base de datos, ya que un hash de MD5 no se puede desencriptar.
Xyrer-blog :
Por Lisandro el 12 de Mayo de 2010
Error!
MD5 es un algoritmo de una sola vía, pero existen tablas precomputadas de hashes, por ejemplo http://gdataonline.com/seekhash.php
Una excelente discusion sobre el tema para quien se preocupe por la seguridad: http://chargen.matasano.com/chargen/2007/9/7/enough-with-the-rainbow-tables-what-you-need-to-know-about-s.html
Por petochis el 30 de Octubre de 2011