lua之base64加密和解密算法。

原创 2016年08月30日 09:48:57
local function encodeBase64(source_str)
    local b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
    local s64 = ''
    local str = source_str

    while #str > 0 do
        local bytes_num = 0
        local buf = 0

        for byte_cnt=1,3 do
            buf = (buf * 256)
            if #str > 0 then
                buf = buf + string.byte(str, 1, 1)
                str = string.sub(str, 2)
                bytes_num = bytes_num + 1
            end
        end

        for group_cnt=1,(bytes_num+1) do
            local b64char = math.fmod(math.floor(buf/262144), 64) + 1
            s64 = s64 .. string.sub(b64chars, b64char, b64char)
            buf = buf * 64
        end

        for fill_cnt=1,(3-bytes_num) do
            s64 = s64 .. '='
        end
    end

    return s64
end

local function decodeBase64(str64)
    local b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
    local temp={}
    for i=1,64 do
        temp[string.sub(b64chars,i,i)] = i
    end
    temp['=']=0
    local str=""
    for i=1,#str64,4 do
        if i>#str64 then
            break
        end
        local data = 0
        local str_count=0
        for j=0,3 do
            local str1=string.sub(str64,i+j,i+j)
            if not temp[str1] then
                return
            end
            if temp[str1] < 1 then
                data = data * 64
            else
                data = data * 64 + temp[str1]-1
                str_count = str_count + 1
            end
        end
        for j=16,0,-8 do
            if str_count > 0 then
                str=str..string.char(math.floor(data/math.pow(2,j)))
                data=math.mod(data,math.pow(2,j))
                str_count = str_count - 1
            end
        end
    end

    local last = tonumber(string.byte(str, string.len(str), string.len(str)))
    if last == 0 then
        str = string.sub(str, 1, string.len(str) - 1)
    end
    return str
end

[寒江孤叶丶的Cocos2d-x之旅_15]Cocos2d-x LUA脚本中对字符串进行Base64加解密/编解码 (LUA Base64 加解密/编解码)

Base64编码在传输数据的时候经常用到,例如:使用json传输如下的一段文字【小明说:"你好!"】 如果用json传输会出现许多问题,{"String":"小明说:"你好!""},这样的形式自然是错...
  • qq446569365
  • qq446569365
  • 2014年10月10日 21:19
  • 4629

Lua实现的Base64编码

ZZBase64 = {} local string = string ZZBase64.__code = { 'A', 'B', 'C', 'D', 'E', 'F', '...
  • yeyuehunluhongyu
  • yeyuehunluhongyu
  • 2015年07月28日 10:24
  • 630

lua中实现的base64加密

[转载]原始地址 是http://www.buildapp.net/post/187.htm function str2base64(str)     local b64chars = 'ABCD...
  • u012635081
  • u012635081
  • 2015年08月18日 17:52
  • 83

tengine-2.1.0 + lua + base64

参考:http://my.oschina.net/eduosi/blog/169606   安装 readline,lua 编译需要用到这个,centos 可以通过 yum 直接安装,如果...
  • y87329396
  • y87329396
  • 2016年04月22日 09:58
  • 214

让lua支持base64和md5

 1) base64支持 wget http://luaforge.net/frs/download.php/2664/luasocket-2.0.2.tar.gzTar xzvf luasocket...
  • pwlazy
  • pwlazy
  • 2007年12月31日 13:05
  • 13973

让lua支持base64和md5

让lua支持base64和md5 分类: web server 2007-12-31 13:05 5589人阅读 评论(0) 收藏 举报 luadownload测试php...
  • xu_ya_fei
  • xu_ya_fei
  • 2014年11月10日 18:56
  • 4204

lua-base64-MD5

参考: Lua\5.1\examples\ require "base64" str="哈哈 ni mei" base64_str=base64.encode(str) print("base64...
  • yangguangmeng
  • yangguangmeng
  • 2016年03月11日 16:35
  • 1750

lua脚本加密解密

  • 2014年01月06日 16:51
  • 308KB
  • 下载

cocos lua 加密与解密 混淆 (版本cocos3.4)

cocos luacompile cocos luacompile OverviewUsageAvailable ArgumentsSamples Overview Compile the .l...
  • Kaitiren
  • Kaitiren
  • 2015年03月19日 14:17
  • 14119

cocos2dx 3.xLua脚本加密解密

使用LUA脚本开发游戏有着诸多的优势,动态更新,不需要考虑内存和数据类型等等。但是LUA脚本的安全性问题却似的许多开发者非常苦恼。 我这两天因为LUA脚本加密的问题苦恼了好久,经过了两天的努力,...
  • ganpengjin1
  • ganpengjin1
  • 2016年03月30日 10:13
  • 1510
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:lua之base64加密和解密算法。
举报原因:
原因补充:

(最多只允许输入30个字)