Forked from: jkltf's Conversion of string binary to hex string diff:114 Man pedejais fails elbruss forked:0favorite:0lines:107license : All rights reserved modified : 2010-01-14 20:01:05 Embed Tweet // forked from jkltf's Conversion of string binary to hex string package { import flash.display.Sprite; import flash.text.TextField; import flash.utils.ByteArray; import flash.xml.*; public class StringBinaryConverter extends Sprite { private static const SOURCE:String = "Goodbye World."; public function StringBinaryConverter () { // write as3 code here.. var uint:String; //var res:String; var loc3:int; var videoUrl:String = ""; uint = "CWSPPjlKcHl4ZWRjMzArZ2B0L2ciYGMiID0uPzRjdWQlbDU5PX0odm8td2J9bC9nZH01PH89b2lxOSMvcHNtYXh1Ii84MzhnYSVwJz0kYSdueAAvZSNpZnI+bS0hamdiL2EvMz8oZG06b310YjkgW4neHUoZzhuZTQzdX1KLSVme20iewwVHRudSM0emR3MHRsJy85dSsiIGgJVR0YH5xdGlmYTRvLy9zcW1uMHZdyR1c2RjMHFsYzEwbzB4My4iaShpmBGYD9wbTA4ZjQ3OGcnYT1tbHIzdVlLmotO2c6dSM4Oi93YXEodGRgdDybTUvLi05LH8zMS8nOWh3Y29teG0cmggLy8vJyV0NDcveTw0OXlubGFi2Nnd3cvdy9iZDBgcSM9dSZ0ZCJyelvPXhgemB2ZDFlcG53JW9paGc1dSvZzJhcGl2aSQiOmFjL2J0bCUgZDIbG4seGFkaW54YDVnbnhldm1ten0g"; // uint = "PjlKcHl4ZWRjMzArZ2B0L2ciYGMiID0uPzRjdWQlbDU5PX0odm8td2J9bC9nZH01PH89b2lxOSMvcHNtYXh1Ii84MzhnYSVwJz0kYSdueAAvZSNpZnI+bS0hamdiL2EvMz8oZG06b310YjkgW4neHUoZzhuZTQzdX1KLSVme20iewwVHRudSM0emR3MHRsJy85dSsiIGgJVR0YH5xdGlmYTRvLy9zcW1uMHZdyR1c2RjMHFsYzEwbzB4My4iaShpmBGYD9wbTA4ZjQ3OGcnYT1tbHIzdVlLmotO2c6dSM4Oi93YXEodGRgdDybTUvLi05LH8zMS8nOWh3Y29teG0cmggLy8vJyV0NDcveTw0OXlubGFi2Nnd3cvdy9iZDBgcSM9dSZ0ZCJyelvPXhgemB2ZDFlcG53JW9paGc1dSvZzJhcGl2aSQiOmFjL2J0bCUgZDIbG4seGFkaW54YDVnbnhldm1ten0g"; //uint = "PjlKcHl4ZWRjMzArZ2B0L2ciYGMiID0uPzRjdWQlbDU5PX0odm8td2J9bC9nZH01PH89b2lxOSMvcHNtYXh1Ii84MzhnYSVwJz0kYSdueAAvZSNpZnI+bS0hamdiL2EvMz8oZG06b310YjkgW4neHUoZzhuZTQzdX1KLSVme20iewwVHRudSM0emR3MHRsJy85dSsiIGgJVR0YH5xdGlmYTRvLy9zcW1uMHZdyR1c2RjMHFsYzEwbzB4My4iaShpmBGYD9wbTA4ZjQ3OGcnYT1tbHIzdVlLmotO2c6dSM4Oi93YXEodGRgdDybTUvLi05LH8zMS8nOWh3Y29teG0cmggLy8vJyV0NDcveTw0OXlubGFi2Nnd3cvdy9iZDBgcSM9dSZ0ZCJyelvPXhgemB2ZDFlcG53JW9paGc1dSvZzJhcGl2aSQiOmFjL2J0bCUgZDIbG4seGFkaW54YDVnbnhldm1ten0g"; // var res:String = decode3(uint,'3'); // var xmlData:XML = new XML(); // xmlData = decode2(uint); var res:* = decode3(uint); // var my_xml:XML = new XML("<some>stuff</some>"); //var xmlData:* = new XML(dec); var debug:TextField = new TextField(); debug.width = debug.height = 600; addChild(debug); debug.appendText("source string: " + res + "\n"); var es:String = encode('aaa'); debug.appendText("encoded string: " + es + "\n"); var ds:String = decode(es); debug.appendText("decoded string: " + ds+ "\n"); } public static function encode(value:String):String { var ba:ByteArray = new ByteArray(); ba.writeUTFBytes(value); var len:uint = ba.length; var s:String = ""; for (var i:uint = 0; i < len; i++) { s += ba[i].toString(16); } return s; } public static function decode(value:String):String { var ba:ByteArray = new ByteArray(); var len:uint = value.length; for (var i:uint = 0; i < len; i += 2) { var c:String = value.charAt(i) + value.charAt(i + 1); ba.writeByte(parseInt(c, 16)); } return ba.toString(); } public static function decode2(data:String):String { // Decode data to ByteArray var bytes:ByteArray = decodeToByteArray(data); // Convert to string and return return bytes.readUTFBytes(bytes.length); } public static function decodeToByteArray(data:String):ByteArray { // Initialise output ByteArray for decoded data var output:ByteArray = new ByteArray(); const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; // Create data and output buffers var dataBuffer:Array = new Array(4); var outputBuffer:Array = new Array(3); // While there are data bytes left to be processed for (var i:uint = 0; i < data.length; i += 4) { // Populate data buffer with position of Base64 characters for // next 4 bytes from encoded data for (var j:uint = 0; j < 4 && i + j < data.length; j++) { dataBuffer[j] = BASE64_CHARS.indexOf(data.charAt(i + j)); } // Decode data buffer back into bytes outputBuffer[0] = (dataBuffer[0] << 2) + ((dataBuffer[1] & 0x30) >> 4); outputBuffer[1] = ((dataBuffer[1] & 0x0f) << 4) + ((dataBuffer[2] & 0x3c) >> 2); outputBuffer[2] = ((dataBuffer[2] & 0x03) << 6) + dataBuffer[3]; // Add all non-padded bytes in output buffer to decoded data for (var k:uint = 0; k < outputBuffer.length; k++) { if (dataBuffer[k+1] == 64) break; output.writeByte(outputBuffer[k]); } } // Rewind decoded data ByteArray output.position = 0; // Return decoded data return output; } public static function decode3(FocusEvent:String) : String { var loc_2:String; var loc_3:* = FocusEvent.substr(3, 1); loc_2="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var loc_4:* = loc_2.indexOf(loc_3)+2; // return String(loc_4); return decode4(FocusEvent.substr(4), String(loc_4)); //return String(loc_4); }// end function public static function decode4(uint1:String, uint2:String = "") : String { var _loc_5:Array; var _loc_6:int; var _loc_7:int; var _loc_8:int; var _loc_3:int; if (uint2 != null) { _loc_3 = int(uint2); }// end if if (_loc_3 > 0) { _loc_5 = new Array(uint1.length); _loc_6 = 0; _loc_7 = _loc_6; _loc_8 = 0; while (_loc_8++ < uint1.length) { // label _loc_5[_loc_7] = uint1.charAt(_loc_8); _loc_7 = _loc_7 + _loc_3; if (_loc_7 >= _loc_5.length) { _loc_6++; _loc_7 = _loc_6; }// end if }// end while uint1 = _loc_5.join(""); }// end if // return uint1; var _loc_4:* = decodeToByteArray(uint1); return _loc_4.readUTFBytes(_loc_4.length); }// end function } } Code Fullscreen Preview Fullscreen ByteArray String appendText substr charAt readUTFBytes writeUTFBytes writeByte parseInt position join indexOf height width toString TextField Array addChild uint length