版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://programmer.blogbus.com/logs/36436446.html

在国外网站上淘到一个很好用的AS3的BASE64类感觉写得简洁而强大。很好,赶快放上来。

调用代码:

01 import com.dynamicflash.utils.Base64;     
02 //编码和解码字符串  
03 var source:String = "Hello, world";     
04 var encoded:String = Base64.encode(source);     
05 trace(encoded);     
06 var decoded:String = Base64.decode(encoded);     
07 trace(decoded);    
08 //编码和解码ByteArray  
09 var obj:Object= {name:"Dynamic Flash",url:"http://dynamicflash.com"};  
10 var source:ByteArray = new ByteArray();  
11 source.writeObject(obj);  
12 var encoded:String = Base64.encodeByteArray(source);  
13 trace(encoded);  
14 var decoded:ByteArray = Base64.decodeToByteArray(encoded);  
15 obj = decoded.readObject();  
16 trace(obj.name + "(" + obj.url + ")");

Base64类代码:

ActionScript 3语言: 临时自用代码@代码发芽网
1. package com.dynamicflash.util{  
2. import flash.utils.ByteArray;  
3. public class Base64 {  
4. private static const BASE64_CHARS:String ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";  
5. public static const version:String = "1.0.0";  
6. public static function encode(data:String):String {  
7. // Convert string to ByteArray
8. var bytes:ByteArray = new ByteArray();  
9.             bytes.writeUTFBytes(data);  
10. // Return encoded ByteArray
11. return encodeByteArray(bytes);  
12.         }  
13. public static function encodeByteArray(data:ByteArray):String {  
14. // Initialise output
15. var output:String = "";  
16. // Create data and output buffers
17. var dataBuffer:Array;  
18. var outputBuffer:Array = new Array(4);  
19. // Rewind ByteArray
20.             data.position = 0;  
21. // while there are still bytes to be processed
22. while (data.bytesAvailable > 0) {  
23. // Create new data buffer and populate next 3 bytes from data
24.                 dataBuffer = new Array();  
25. for (var i:uint = 0; i < 3 && data.bytesAvailable > 0; i++) {  
26.                     dataBuffer[i] = data.readUnsignedByte();  
27.                 }  
28. // Convert to data buffer Base64 character positions and 
29. // store in output buffer
30.                 outputBuffer[0] = (dataBuffer[0] & 0xfc) >> 2;  
31.                 outputBuffer[1] = ((dataBuffer[0] & 0x03) << 4) | ((dataBuffer[1]) >> 4);  
32.                 outputBuffer[2] = ((dataBuffer[1] & 0x0f) << 2) | ((dataBuffer[2]) >> 6);  
33.                 outputBuffer[3] = dataBuffer[2] & 0x3f;  
34. // If data buffer was short (i.e not 3 characters) then set
35. // end character indexes in data buffer to index of '=' symbol.
36. // This is necessary because Base64 data is always a multiple of
37. // 4 bytes and is basses with '=' symbols.
38. for (var j:uint = dataBuffer.length; j < 3; j++) {  
39.                     outputBuffer[j + 1] = 64;  
40.                 }  
41. // Loop through output buffer and add Base64 characters to 
42. // encoded data string for each character.
43. for (var k:uint = 0; k < outputBuffer.length; k++) {  
44.                     output += BASE64_CHARS.charAt(outputBuffer[k]);  
45.                 }  
46.             }  
47. // Return encoded data
48. return output;  
49.         }  
50. public static function decode(data:String):String {  
51. // Decode data to ByteArray
52. var bytes:ByteArray = decodeToByteArray(data);  
53. // Convert to string and return
54. return bytes.readUTFBytes(bytes.length);  
55.         }  
56. public static function decodeToByteArray(data:String):ByteArray {  
57. // Initialise output ByteArray for decoded data
58. var output:ByteArray = new ByteArray();  
59. // Create data and output buffers
60. var dataBuffer:Array = new Array(4);  
61. var outputBuffer:Array = new Array(3);  
62. // While there are data bytes left to be processed
63. for (var i:uint = 0; i < data.length; i += 4) {  
64. // Populate data buffer with position of Base64 characters for
65. // next 4 bytes from encoded data
66. for (var j:uint = 0; j < 4 && i + j < data.length; j++) {  
67.                     dataBuffer[j] = BASE64_CHARS.indexOf(data.charAt(i + j));  
68.                 }  
69. // Decode data buffer back into bytes
70.                 outputBuffer[0] = (dataBuffer[0] << 2) + ((dataBuffer[1] & 0x30) >> 4);  
71.                 outputBuffer[1] = ((dataBuffer[1] & 0x0f) << 4) + ((dataBuffer[2] & 0x3c) >> 2);          
72.                 outputBuffer[2] = ((dataBuffer[2] & 0x03) << 6) + dataBuffer[3];  
73. // Add all non-padded bytes in output buffer to decoded data
74. for (var k:uint = 0; k < outputBuffer.length; k++) {  
75. if (dataBuffer[k+1] == 64) break;  
76.                     output.writeByte(outputBuffer[k]);  
77.                 }  
78.             }  
79. // Rewind decoded data ByteArray
80.             output.position = 0;  
81. // Return decoded data
82. return output;  
83.         }  
84. public function Base64() { 
85. throw new Error("Base64 class is static container only");  
86.         }  
87.     }  
88. }

下载类文件

基于 flash AS3.0 的BASE64编码与解码类相关推荐

  1. 基于flash AS3.0 的BASE64编码与解码类

    代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--& ...

  2. Flash AS3.0实例教程:构建简单的声音可视化程序(波型图)

    本例为Flash AS3.0实例教程,在教程中我们将学习运用SoundMixer.computeSpectrum() 方法来构建简单的声音可视化程序(即波形图),希望能给朋友们带来帮助~~ AS3.0 ...

  3. flash as3.0 图片切换

    flash as3.0 图片切换 flash import fl.transitions.*; import fl.transitions.easing.*; import flash.system. ...

  4. Flash AS3.0实战

    如今网页游戏在游戏产业中占有半壁江山.在网页游戏中,百分之九十使用的是flash as3来做前端交互的开发.flash以其体积小等特性,吸引了无数的玩家.比如<傲剑>,<神仙道> ...

  5. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  6. js php base64,JavaScript实现Base64编码与解码的代码详解

    本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...

  7. Base64编码和解码

    Base64编码和解码 DES加密后密文长度是8个整数倍 加密后比明文长度变长,所以编码表找不到对应字符,乱码 使用Base64编码和解密:从Apache现在 1.加密后密文使用Base64编码 2. ...

  8. java解码base64的png图片_使用PHP对图片进行base64编码和解码(png、jpg,声音、视频)...

    为什么要对图片base64编码 base64是网络上最常见的传输8Bit字节代码的编码方式之一.base64主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些二进制字符在传输 ...

  9. mysql base64 乱码_PHP base64编码后解码乱码的解决办法

    在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的.来看看罪魁祸首是谁. 嫌疑人:base64_encode 和 base64_decode 罪行:我写了 ...

最新文章

  1. 边缘计算Edage Computing
  2. linux内核报告,Linux升级内核报告.docx
  3. 问题用户小米科技CEO雷军:千万别把用户当上帝
  4. linux控制台单人五子棋简书,Java控制台版五子棋的简单实现方法
  5. rog live service是什么_王者荣耀五周年好礼送不停,玩游戏还能白嫖ROG游戏手机3?...
  6. 限制外来计算机访问,准入网关|网络准入控制|非法接入检测|限制非法访问解决方案...
  7. 分布式系统的可靠协调系统——Zookeeper
  8. 数据库系统概论王珊编写的第三章学生-课程数据库
  9. 面试官系统精讲Java源码及大厂真题 - 01 开篇词:为什么学习本专栏
  10. Ajax跨域请求与解决方案
  11. The constructor someMethod() is not accessible due to restriction on required library
  12. SAP License:SAP ECC6安装系列四:安装过程详解
  13. 腾讯 WXG | 技术研究-NLP算法三面复盘
  14. ios底部栏设计规范_2016年全新Apple iOS设计规范指南!
  15. [转载] Python的exec
  16. eclipse 插件 subclipse plugin 中修改已经登录的帐户密码的方法
  17. C/C++[codeup 1808]字符串查找删除
  18. 牛客网sql练习题解(34-42)
  19. 何为功能平价?特斯拉「抛弃」多传感融合,背后有哪些门道
  20. 2小时学会CSS,完成网页制作!

热门文章

  1. 北大青鸟消防设备说明书_北大青鸟消防控制主机操作说明
  2. 京东金融投资数库 欲打造大数据产业链闭环
  3. 23种设计模式之 : 模板方法设计模式
  4. 人工智能史话(番外篇)
  5. 物联网安全复习二感知层安全
  6. Open vSwitch
  7. 嵌入式QT--静态编译
  8. USBASP烧录出现的几种错误
  9. 《福特自传》读书笔记
  10. FANUC机器人的EE接口使用方法