--Lua--十进制转二进制functiondec_to_binary (data)

local dst= ""local remainder, quotient--异常处理if not data then return dst end --源数据为空if not tonumber(data) then return dst end --源数据无法转换为数字--如果源数据是字符串转换为数字if "string" ==type(data) then

data=tonumber(data)

endwhile true doquotient= math.floor(data / 2)

remainder= data % 2dst=dst..remainder

data=quotientif 0 ==quotient thenbreakend

end--翻转

dst=string.reverse(dst)--补齐8位if 8 >#dst thenfor i = 1, 8 - #dst, 1 dodst= '0'..dst

end

endreturndst

end--Lua--二进制转十进制functionbinary_to_dec (data)

local dst= 0local tmp= 0

--异常处理if not data then return dst end --源数据为空if not tonumber(data) then return dst end --源数据无法转换为数字--如果源数据是字符串去除前面多余的0if "string" ==type(data) then

data=tostring(tonumber(data))

end--如果源数据是数字转换为字符串if "number" ==type(data) then

data=tostring(data)

end--转换for i = #data, 1, -1 dotmp= tonumber(data:sub(-i, -i))if 0 ~=tmp thenfor j = 1, i - 1, 1 dotmp= 2 *tmp

end

end

dst= dst +tmp

endreturndst

end--Lua--base64加密functionbase64encode(data)

local basecode= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"local code= ""local dst= ""local tmp

local encode_num= 0 --base64编码后的分组数,6字节为一组

local num= 0 --编码后后缀"="的个数

local len= 1 --用于统计编码个数,76个编码字符换行--异常处理if not data then return dst end --源数据为空--转换为二进制for i = 1, #data, 1 dotmp= data:byte(i)if 0 > tmp or 255

end

code=code..dec_to_binary(tmp)

end--字符串长度不能被3整除的情况

num= 3 - #data % 3

if 0

end

encode_num= #code / 6

--开始编码for i = 1, #code, 6 dotmp= binary_to_dec(code:sub(i, i + 5))

tmp= tmp + 1 --Lua下标从1开始,切记if 0 == num then --无"="后缀的情况

dst=dst..basecode:sub(tmp, tmp)

len= len + 1encode_num= encode_num - 1

--每76个字符换行if 76 ==len then

dst= dst.."\n"len= 1end

endif 0 < num then --有"="后缀的情况if encode_num == num and 1 ==tmp then

dst= dst..'='len= len + 1encode_num= encode_num - 1num= num - 1

--每76个字符换行if 76 ==len then

dst= dst.."\n"len= 1endelsedst=dst..basecode:sub(tmp, tmp)

len= len + 1encode_num= encode_num - 1

--每76个字符换行if 76 ==len then

dst= dst.."\n"len= 1end

end

end

endreturndst

end--Lua--base64解密functionbase64decode(data)

local basecode= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"local dst= ""local code= ""local tmp, index--异常处理if not data then return dst end --源数据为空

data= data:gsub("\n", "") --去除换行符

data= data:gsub("=", "") --去除'='

for i = 1, #data, 1 dotmp=data:sub(i, i)

index=basecode:find(tmp)if nil ==index thenreturndst

end

index= index - 1tmp=dec_to_binary(index)

code= code..tmp:sub(3) --去除前面多余的两个'00'end--开始解码for i = 1, #code, 8 dotmp= string.char(binary_to_dec(code:sub(i, i + 7)))if nil ~=tmp then

dst=dst..tmp

end

endreturndst

end

des加密 lua_纯lua实现Base64加密与解密相关推荐

  1. python中base64加密字典_python中的base64加密和解密

    import base64 import json def row_data(): content = { "buyer_nick": "家有亲亲", &quo ...

  2. lua版本base64加密和解密

    特别注意 Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下就可以了 原理 将文件读入内存,由于读入 ...

  3. Http请求加密规则(3DES、Base64、HMAC SHA256)

    Http请求加密规则(3DES.Base64.HMAC SHA256) 如果使用了Https请求,那么大多数情况下就无需双方再制定一套加密规则,所以本人讲述的是使用Http请求时,对于一些安全性较高的 ...

  4. Java 开发中常用的 4 种加密方法。MD5加密工具类测试 base64加密工具类测试 SHA加密工具类测试 BCrypt加密工具类测试

    一.工具类 1, md5加密工具类 2, base64加密工具类 3, Bcrypt工具类 二.加密测试 MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试 一.工具类 1, ...

  5. des加密 lua_Windows下为Lua脚本进行加密处理

    缘由# 想对Lua脚本进行安全性处理,可惜一直没有想到很好的解决方案,考虑过用原生Lua将脚本编译成二进制代码,也考虑过用zlib将文件进行加密压缩处理,但是感觉都不是最佳方案,今天忽然想到有个东西叫 ...

  6. Lua Base64加密解密

    Base64 加密解密方法相关 -- 加密 function encode(data)local b = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst ...

  7. Android网络传输中必用的两个加密算法:MD5 和 RSA 及Base64加密总结

    (1)commons-codec包简介 包含一些通用的编码解码算法.包括一些语音编码器,Hex,Base64.MD5 一.md5.base64.commons-codec包 commons-codec ...

  8. Base64加密---加密学习笔记(一)

    密码的常用术语: (一) 明文:待加密信息 密文:经过加密后的明文 加密:明文转为密文的过程 加密算法:明文转为密文的转换算法 加密密钥:通过加密算法进行加密操作用的密钥 解密:将密文转为明文的过程 ...

  9. C# DES加密类,16位的加密。

    这个加密类是与java写的DES加密不同时,自己写的,最后与Java的加密相同了,解决了加密后不同的问题. 可以直接调用里面的加密和解密的方法. using System; using System. ...

  10. java中3des cbc,js與java通用的3DES(ECB,CBC)+Base64加密編碼,解碼解密

    J S端加密過程: key的處理: 通過創建指定的key,key必須是16位/24位/32位其中一種,但是常用的3DES加密的key為24位,下面使用的就是24位,key的長度可以隨意指定,在轉換ke ...

最新文章

  1. html5类选择器选择权重,Python Html5和CSS3的新增功能:CSS权重与CSS3新增选择器
  2. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 数据库报错
  3. Elasticsearch聚合查询案例分享
  4. c#中namespace、assembly与DLL/EXE
  5. 使用SysPrep制作Windows2008系统映像
  6. java_opts 参数与JVM内存调优
  7. qt tabwidget 设置tab 位置_qml创建TabWidget的案例
  8. 求你们不要再问我录屏软件了,这些电脑、手机录屏软件全给你们!
  9. 向已知EXCEL模板写入数据并导出
  10. sqlite3返回码
  11. 英雄联盟官网服务器状态查询,官方新功能:各大区服务器状态可查询!
  12. PicGo+Github图床配置
  13. 解决Error: Call to undefined function eregi() 报错方法
  14. StackMap属性解析
  15. 【人物志】美团前端通道主席洪磊:一位产品出身、爱焊电路板的工程师
  16. html 消除序号,JS实现删除一行数据页面序号重新排序功能。
  17. 炫酷的ViewPager翻页动画
  18. 小武学fpgastep3
  19. 配置DeepStreaks环境
  20. 优达学城计算机视觉pkl,优达学城机器学习工程师纳米学位项目介绍

热门文章

  1. navicat的注册出现提示No All Pattern Found! File Already Patched?
  2. 更改stata外部命令存放位置
  3. macOS多版本虚拟机镜像免费下载(及教程)
  4. MCU_segger-JLINK批处理脚本烧录工具-JFlash
  5. STM32串口通讯——中断方式
  6. ArcGIS创建拓扑
  7. OPPO Reno6 6Pro刷root强解BL锁 oppo reno6 Root教程
  8. 2021-11-02 Kafka、Zookeeper的下载、打开、关闭
  9. PHP strtotime 将时间转换为时间戳
  10. c语言中gotoxy,关于gotoxy的问题....