代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//调用代码: import com.dynamicflash.utils.Base64; //编码和解码字符串 var source:String = "Hello, world"; var encoded:String = Base64.encode(source); trace(encoded); var decoded:String = Base64.decode(encoded); trace(decoded); //编码和解码ByteArray var obj:Object= {name:"Dynamic Flash",url:"http://dynamicflash.com"}; var source:ByteArray = new ByteArray(); source.writeObject(obj); var encoded:String = Base64.encodeByteArray(source); trace(encoded); var decoded:ByteArray = Base64.decodeToByteArray(encoded); obj = decoded.readObject(); trace(obj.name + "(" + obj.url + ")"); //Base64类代码: package com.dynamicflash.util{ import flash.utils.ByteArray; public class Base64 { private static const BASE64_CHARS:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; public static const version:String = "1.0.0"; public static function encode(data:String):String { // Convert string to ByteArray var bytes:ByteArray = new ByteArray(); bytes.writeUTFBytes(data); // Return encoded ByteArray return encodeByteArray(bytes); } public static function encodeByteArray(data:ByteArray):String { // Initialise output var output:String = ""; // Create data and output buffers var dataBuffer:Array; var outputBuffer:Array = new Array(4); // Rewind ByteArray data.position = 0; // while there are still bytes to be processed while (data.bytesAvailable > 0) { // Create new data buffer and populate next 3 bytes from data dataBuffer = new Array(); for (var i:uint = 0; i < 3 && data.bytesAvailable > 0; i++) { dataBuffer[i] = data.readUnsignedByte(); } // Convert to data buffer Base64 character positions and // store in output buffer outputBuffer[0] = (dataBuffer[0] & 0xfc) >> 2; outputBuffer[1] = ((dataBuffer[0] & 0x03) << 4) | ((dataBuffer[1]) >> 4); outputBuffer[2] = ((dataBuffer[1] & 0x0f) << 2) | ((dataBuffer[2]) >> 6); outputBuffer[3] = dataBuffer[2] & 0x3f; // If data buffer was short (i.e not 3 characters) then set // end character indexes in data buffer to index of '=' symbol. // This is necessary because Base64 data is always a multiple of // 4 bytes and is basses with '=' symbols. for (var j:uint = dataBuffer.length; j < 3; j++) { outputBuffer[j + 1] = 64; } // Loop through output buffer and add Base64 characters to // encoded data string for each character. for (var k:uint = 0; k < outputBuffer.length; k++) { output += BASE64_CHARS.charAt(outputBuffer[k]); } } // Return encoded data return output; } public static function decode(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(); // 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 function Base64() { throw new Error("Base64 class is static container only"); } } }
相关推荐
完美支持中文 base64 编码与解码 目前速度最快 效率最高的编码与解码
今天在国外网站上淘到一个很好用的AS3的BASE64类 感觉写得简洁而强大。很好,赶快放上来。 调用代码: import com . dynamicflash . utils . Base64 ; //编码和解码字符串 var source : String = "Hello, world" ...
base64编码与解码C语言实现(带注释说明原理) 其中包括:base64编码接口和base64解码接口
Base64编码、解码类+VB源代码Base64ED
Base64编码解码类 Base64 Encode Decode
我在网上找了半天的java、js的base64编码解码结果没有,只好自己写了,js一个文件,java一个文件,调用里面是使用方法
Base64编码、解码 编码方式支持:ansi、utf-8、unicode 支持解码到文件
实现BASE64编码和解码程序, 在类中实现如下函数并运行测试正确。 BASE64编码算法请在网上查询。 public String encode(byte[] data) { } public byte[] decode(String b) { }
2) 修复 BASE64编码解码,个别情况下不会选择AVX2模式的问题(C/C++的bool类型是单字节,易的逻辑型是4字节,易的逻辑型为真时 转为字节集可能是{0,0,1,0},导致单字节判断 时灵时不灵)。1.4更新(2019.6.5)。 1) 添加...
Javascript Base64编码解码
这是一个很好的Base64编-解码工具.转换很方便,支持中文,支持UTF-8,... 解码: 在下面的窗口输入base64的编码(最多可输入25000个字符,软件可以自动过滤掉非base64编码),同时即可在上面的窗口输出解码后的信息。
C#实现Base64编码与解码 当我们打开邮件文件时.看到的乱码即为Base64 编码. 此处实现邮件解码 及 邮件编码.
自己用java实现的Base64编码和解码,支持自定义字母表,文章地址http://blog.csdn.net/zzhouqianq/article/details/46992347
.net C#实现Base64编码与解码
base64编码与解码jar包
Base64编码解码工具.exe
labview 图片缩放 base64编码base64解码
base64编码和解码c++代码,从live555源码中移植并修改过来的
Java Base64 编码和解码程序,支持中文。
base64编码解码离线工具,不需要联网,适用于windows,自己开发的一个小工具,比较简陋,优化了一下功能,能够解释显示换行符