Base64 编码
-- Base64 字符表
local base64_chars = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
}
-- Base64 编码函数
function base64_encode (data)
local bits = 0
local cur = 1
local result = {}
for i = 1, #data do
local byte = string.byte (data, i)
bits = bits | (byte << (cur * 8))
cur = cur + 1
if cur == 3 then
for j = 18, -1, -6 do
table.insert (result, base64_chars [1 + (bits>> j) & 0x3F])
end
cur = 0
bits = 0
end
end
if cur > 0 then
for j = (cur * 8), 5, -6 do
table.insert (result, base64_chars [1 + (bits>> j) & 0x3F])
end
while #result % 4 ~= 0 do
table.insert (result, '=')
end
end
return table.concat (result)
end
-- 要编码的字符串
local long_string = "这是一个需要编码的长字符串。"
-- 编码字符串
local encoded_string = base64_encode (long_string)
print ("Base64 编码后的字符串:", encoded_string)
Base64 编码 lua
星空露珠2024-02-27 20:24
相关推荐
Yan.love1 小时前
开发场景中Java 集合的最佳选择冠位观测者1 小时前
【Leetcode 每日一题】2545. 根据第 K 场考试的分数排序就爱学编程2 小时前
重生之我在异世界学编程之C语言小项目:通讯录ALISHENGYA3 小时前
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(实战项目二)DARLING Zero two♡4 小时前
【优选算法】Pointer-Slice:双指针的算法切片(下)波音彬要多做5 小时前
41 stack类与queue类Noah_aa5 小时前
代码随想录算法训练营第五十六天 | 图 | 拓扑排序(BFS)KpLn_HJL6 小时前
leetcode - 2139. Minimum Moves to Reach Target ScoreAC使者12 小时前
5820 丰富的周日生活