aardio 文档
aardio 范例: Base64
//Base64
import crypt;
//------------------ 常规 base64 编解码 ------------------
// BASE64 编码
var b64 = crypt.encodeBin( "字符串" );
//BASE64 解码,支持 PEM,非 BASE64 文本等,可以看一看这个函数的源码
var bin = crypt.decodeBin(b64)
print(b64,bin);
// Base64URL 编码
var b64 = crypt.encodeUrlBase64( "字符串" );
// Base64URL 解码
var bin = crypt.decodeUrlBase64(b64)
//------------------ 高性能 base64 编解码 ------------------
/*
base64 支持库编解码的速度非常快,但程序会增加几十 KB 的大小。
一般情况建议使用 crypt.encodeBin , crypt.decodeBin 进行 Base64 编码或解码。
因为很多库引用了 crypt 库,这通常可以减少程序体积。
crypt.encodeBin , crypt.decodeBin 其实也很快,
例如编码一个图像文件基本感觉不到延时,这时候用 base64 支持库去优化意义就不大。
但如果是频繁地密集地处理较大的数据,使用 base64 支持库可以显著地提升性能。
*/
import base64
//返回字符串
var b64 = base64.encode("需要编码的字符串、buffer、或者结构体")
//解码,返回值为 buffer 类型
var buffer = base64.decode(b64);
//创建流式编码对象
var streamEncoder = base64.encoder()
streamEncoder.write("Base64") // 写字符串
streamEncoder.write(raw.buffer("真的")) // 写 buffer
streamEncoder.write({BYTES bytes[]="更快"}) // 写结构体
var b64 = streamEncoder.final()
print(b64)
//流式编码对象
var streamDecoder = base64.decoder()
for m in string.gmatch(b64 ,"."){
streamDecoder.write(m)
}
print( streamDecoder.final() )
Markdown 格式