Heyho, I´m doing some math on Hex Numbers to implement a modification of the TEA algorithm, which has to match a C implementation.
Now I´m facing the problem that Flash allows negative hexadecimal values, which is quite unusual and not supported in C. I´ve posted my algorithm below, would be great if someone would have a solution for me on how to force Flash to handle over/underflows in the "normal" manner. Thanks, André -------------------------- usage example // var inp = "12345678901234567890123456789012"; var key = "72538349254738294658203654839288"; // var crypted = TeaEncrypt(inp,key); // var out = TeaDecrypt(crypted,key); // trace(inp); trace(crypted); trace(out); //traces: /* 12345678901234567890123456789012 -4e99fb3a-1f1d5f5d -703ea3b373dc1b */ public static function TeaEncrypt(cryptData:String, cryptKey:String):String { var y:Number= parseInt(cryptData.substr(0, 8), 16); var z:Number= parseInt(cryptData.substr(8, 8), 16); var a:Number= parseInt(cryptKey.substr( 0, 8), 16); var b:Number= parseInt(cryptKey.substr( 8, 8), 16); var c:Number= parseInt(cryptKey.substr(16, 8), 16); var d:Number= parseInt(cryptKey.substr(24, 8), 16); var sum:Number=0x00; var dt:Number=0x9E3779B9; var n:Number=32; while( n-->0 ) { sum = (sum + dt) & 0xFFFFFFFF; y += ((z << 4)+a) ^ (z+sum) ^ ((z >>> 5)+b); z += ((y << 4)+c) ^ (y+sum) ^ ((y >>> 5)+d); } return y.toString(16) + z.toString(16); } public static function TeaDecrypt(cryptData:String, cryptKey:String):String { var y:Number= parseInt(cryptData.substr(0, 8), 16); var z:Number= parseInt(cryptData.substr(8, 8), 16); var a:Number= parseInt(cryptKey.substr( 0, 8), 16); var b:Number= parseInt(cryptKey.substr( 8, 8), 16); var c:Number= parseInt(cryptKey.substr(16, 8), 16); var d:Number= parseInt(cryptKey.substr(24, 8), 16); var sum:Number=0xC6EF3720; var delta:Number=0x9E3779B9; var n:Number=32; while( n-->0 ) { z -= ((y << 4)+c) ^ (y+sum) ^ ((y >>> 5)+d); y -= ((z << 4)+a) ^ (z+sum) ^ ((z >>> 5)+b); sum = (sum - delta) & 0xFFFFFFFF; } return y.toString(16) + z.toString(16); } _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com