segundo alguns blogs por ai, vc não está sozinho... as3crypto parece que não funciona legal. olha as outras msgs neste tópico para uma alternativa que sim funciona.
julio On Mar 3, 12:52 pm, Lucas Araujo <araujo.lu...@gmail.com> wrote: > Alguém aqui já conseguiu criptografar alguma String com a bilioteca > as3crypto, passar para o PHP, e depois descriptografar? > > Tentei isso à algum tempo atrás e não consegui, pesquisei no google, > mas também não deu certo... Sempre a string criptofgrafada que eu > recebia no PHP não era transformada corretamente para a original > > Obrigado, > Lucas Araujo,http://twitter.com/LucasAraujo > > On Tue, Mar 3, 2009 at 12:14, Julio Carneiro <jjcarne...@gmail.com> wrote: > > > Eu tb uso esta classe, que pode ser encontrada aqui: > >http://gsolofp.blogspot.com/2006/01/actionscript-3-md5-and-sha1.html > > > Uso sem problemas, depois de uns pequenos ajustes para eliminar > > warnings. > > > Lá tem tb uma classe pra SHA1, se alguém precisar. > > > julio > > > On Mar 3, 11:44 am, Ricardo Ramires <rramire...@gmail.com> wrote: > >> Estou usando essa que alguém(não lembro de onde peguei) converteu do > >> javascript para as3, lembro que tinha uns warnings, pq quem tinha > >> feito não tava usando o modo estrito, mas agora ta certinha: > > >> Usa chamando o metodo estático MD5.encrypt("suastring"); > > >> package helpers { > >> public class MD5 { > > >> /* > >> * Configurable variables. You may need to tweak these to > >> be > >> compatible with > >> * the server-side, but the defaults work in most cases. > >> */ > > >> public static const HEX_FORMAT_LOWERCASE:uint = 0; > >> public static const HEX_FORMAT_UPPERCASE:uint = 1; > > >> public static const > >> BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = > >> ""; > >> public static const > >> BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = > >> "="; > > >> public static var hexcase:uint = 0; /* hex output > >> format. 0 - > >> lowercase; 1 - uppercase */ > >> public static var b64pad:String = ""; /* base-64 pad > >> character. "=" > >> for strict RFC compliance */ > > >> public static function encrypt (string:String):String { > >> return hex_md5 (string); > >> } > > >> /* > >> * These are the functions you'll usually want to call > >> * They take string arguments and return either hex or > >> base-64 > >> encoded strings > >> */ > >> public static function hex_md5 (string:String):String { > >> return rstr2hex (rstr_md5 (str2rstr_utf8 > >> (string))); > >> } > > >> public static function b64_md5 (string:String):String { > >> return rstr2b64 (rstr_md5 (str2rstr_utf8 > >> (string))); > >> } > > >> public static function any_md5 (string:String, > >> encoding:String):String { > >> return rstr2any (rstr_md5 (str2rstr_utf8 > >> (string)), encoding); > >> } > >> public static function hex_hmac_md5 (key:String, > >> data:String):String > >> { > >> return rstr2hex (rstr_hmac_md5 (str2rstr_utf8 > >> (key), str2rstr_utf8 > >> (data))); > >> } > >> public static function b64_hmac_md5 (key:String, > >> data:String):String > >> { > >> return rstr2b64 (rstr_hmac_md5 (str2rstr_utf8 > >> (key), str2rstr_utf8 > >> (data))); > >> } > >> public static function any_hmac_md5 (key:String, > >> data:String, > >> encoding:String):String { > >> return rstr2any(rstr_hmac_md5(str2rstr_utf8(key), > >> str2rstr_utf8 > >> (data)), encoding); > >> } > > >> /* > >> * Perform a simple self-test to see if the VM is working > >> */ > >> public static function md5_vm_test ():Boolean { > >> return hex_md5 ("abc") == > >> "900150983cd24fb0d6963f7d28e17f72"; > >> } > > >> /* > >> * Calculate the MD5 of a raw string > >> */ > >> public static function rstr_md5 (string:String):String { > >> return binl2rstr (binl_md5 (rstr2binl (string), > >> string.length * > >> 8)); > >> } > > >> /* > >> * Calculate the HMAC-MD5, of a key and some data (raw > >> strings) > >> */ > >> public static function rstr_hmac_md5 (key:String, > >> data:String):String { > >> var bkey:Array = rstr2binl (key); > >> if (bkey.length > 16) bkey = binl_md5 (bkey, key.length > >> * 8); > > >> var ipad:Array = new Array(16), opad:Array = new > >> Array(16); > >> for(var i:Number = 0; i < 16; i++) { > >> ipad[i] = bkey[i] ^ 0x36363636; > >> opad[i] = bkey[i] ^ 0x5C5C5C5C; > >> } > > >> var hash:Array = binl_md5 (ipad.concat (rstr2binl > >> (data)), 512 + > >> data.length * 8); > >> return binl2rstr (binl_md5 (opad.concat (hash), 512 + > >> 128)); > >> } > > >> /* > >> * Convert a raw string to a hex string > >> */ > >> public static function rstr2hex (input:String):String { > >> var hex_tab:String = hexcase ? "0123456789ABCDEF" : > >> "0123456789abcdef"; > >> var output:String = ""; > >> var x:Number; > >> for(var i:Number = 0; i < input.length; i++) { > >> x = input.charCodeAt(i); > >> output += hex_tab.charAt((x >>> 4) & 0x0F) > >> + hex_tab.charAt( x & 0x0F); > >> } > >> return output; > >> } > > >> /* > >> * Convert a raw string to a base-64 string > >> */ > >> public static function rstr2b64 (input:String):String { > >> var tab:String = > >> "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; > >> var output:String = ""; > >> var len:Number = input.length; > >> for(var i:Number = 0; i < len; i += 3) { > >> var triplet:Number = (input.charCodeAt(i) << 16) > >> | (i + 1 < len ? input.charCodeAt(i+1) << > >> 8 : 0) > >> | (i + 2 < len ? input.charCodeAt(i+2) > >> : 0); > >> for(var j:Number = 0; j < 4; j++) { > >> if(i * 8 + j * 6 > input.length * 8) output += > >> b64pad; > >> else output += tab.charAt((triplet >>> 6*(3-j)) & > >> 0x3F); > >> } > >> } > >> return output; > >> } > > >> /* > >> * Convert a raw string to an arbitrary string encoding > >> */ > >> public static function rstr2any(input:String, > >> encoding:String):String { > >> var divisor:Number = encoding.length; > >> var remainders:Array = []; > >> var i:Number, q:Number, x:Number, quotient:Array; > > >> /* Convert to an array of 16-bit big-endian values, > >> forming the > >> dividend */ > >> var dividend:Array = new Array(input.length / 2); > >> for(i = 0; i < dividend.length; i++) { > >> dividend[i] = (input.charCodeAt(i * 2) << 8) | > >> input.charCodeAt > >> (i * 2 + 1); > >> } > > >> /* > >> * Repeatedly perform a long division. The binary array > >> forms the > >> dividend, > >> * the length of the encoding is the divisor. Once > >> computed, the > >> quotient > >> * forms the dividend for the next step. We stop when > >> the dividend > >> is zero. > >> * All remainders are stored for later use. > >> */ > >> while(dividend.length > 0) { > >> quotient = []; > >> x = 0; > >> for(i = 0; i < dividend.length; i++) { > >> x = (x << 16) + dividend[i]; > >> q = Math.floor(x / divisor); > >> x -= q * divisor; > >> if(quotient.length > 0 || q > 0) > >> quotient[quotient.length] = q; > >> } > >> remainders[remainders.length] = x; > >> dividend = quotient; > >> } > > >> /* Convert the remainders to the output string */ > >> var output:String = ""; > > ... > > read more » --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com Para sair da lista, envie um email em branco para flexdev-unsubscr...@googlegroups.com Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---