Base64 编码 lua

news2025/1/15 6:27:53

8e02f9ead6894ab7b4822708ea240f31.jpg

 

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1470865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VIO第5讲:后端优化实践

VIO第5讲后端优化实践&#xff1a;逐行手写求解器 文章目录 VIO第5讲后端优化实践&#xff1a;逐行手写求解器1 非线性最小二乘求解流程1.1 H矩阵不满秩的解决办法1.2 H矩阵的构建1.2.1 确定维度1.2.2 构建海塞矩阵 1.3 初始化μ—LM算法1.4 求解线性方程1.4.1 非SLAM问题—求逆…

C++ //练习 8.13 重写本节的电话号码程序,从一个命名文件而非cin读取数据。

C Primer&#xff08;第5版&#xff09; 练习 8.13 练习 8.13 重写本节的电话号码程序&#xff0c;从一个命名文件而非cin读取数据。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /***************************************…

【力扣白嫖日记】178.分数排名

前言 练习sql语句&#xff0c;所有题目来自于力扣&#xff08;https://leetcode.cn/problemset/database/&#xff09;的免费数据库练习题。 今日题目&#xff1a; 178.分数排名 表&#xff1a;Scores 列名类型idintscoredecimal 在 SQL 中&#xff0c;id 是该表的主键。 …

常用芯片学习——YC688语音芯片

YC688 广州语创公司语音芯片 使用说明 YC688是一款工业级的MP3语音芯片 &#xff0c;完美的集成了MP3、WAV的硬解码。支持SPI-Flash、TF卡、U盘三种存储设备。可通过电脑直接更新SPI-Flash的内容&#xff0c;无需上位机软件。通过简单的串口指令即可完成三种存储设备的音频插…

一个简单的mysql绕过

一、环境代码 上一个环境的demo文件 二、ctf技巧 代码先进入&#xff0c;到chr转换为英文&#xff0c;之后连接到hehe后面&#xff0c;假设我连接了一个&#xff0c;接下来就回去demo中查找hehe&#xff0c;如果name是hehe就输出&#xff0c;意思就是只认前面的hehe后面的会被…

人工智能在测绘行业的应用与挑战

目录 一、背景 二、AI在测绘行业的应用方向 1. 自动化特征提取 2. 数据处理与分析 3. 无人机测绘 4. 智能导航与路径规划 5. 三维建模与可视化 6. 地理信息系统&#xff08;GIS&#xff09;智能化 三、发展前景 1. 技术融合 2. 精准测绘 3. 智慧城市建设 4. 可…

IO进程线程复习:进程线程

1.进程的创建 #include<myhead.h>int main(int argc, const char *argv[]) {printf("hello world\n");//父进程执行的内容int num520;//在父进程中定义的变量pid_t pidfork();//创建子进程if(pid>0){while(1){printf("我是父进程&#xff0c;num%d\n&…

LeetCode_Java_环形链表(题目+思路+代码)

141.环形链表 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位…

springboot项目打成含crud操作的sdk集成到springboot启动引擎项目

一 sdk配置操作 1.1 结构 sdk项目目录中只有基础的service类以及mybatis操作数据库的相关文件&#xff0c;service类中包含查询数据库的方法。 说明&#xff1a; 1.2 sdk的pom打包配置 作为公共项目打成jar供其他项目引用&#xff0c;注意被引入的项目不能使用默认的maven…

python 运算符总结

什么是运算符 什么是运算符? 先看如下示例 549 例子中&#xff0c;4 和 5 被称为操作数&#xff0c; 称为运算符。 而Python 语言支持以下类型的运算符: 算术运算符比较&#xff08;关系&#xff09;运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级 …

UDP 与 TCP 的区别是什么?

目录 区别 一、面向无连接 二、不可靠性 三、高效 四、传输方式 五、适用场景 1.直播 2.英雄联盟 六、总结 区别 首先 UDP 协议是面向无连接的&#xff0c;也就是说不需要在正式传递数据之前先连接起双方。然后 UDP 协议只是数据报文的搬运工&#xff0c;不保证有序且…

第十二天-邮件发送

目录 发送邮件的流程 邮件的发送协议 smtplib模块 email包 demo 发送html邮箱 发送带附件的邮箱 发送定时邮件schedule模块 发送邮件的流程 邮件的发送协议 smtp是邮件的发送协议pop3是邮件的接受协议协议就是一种规则&#xff0c;已经被底层网络封装好了&#xff0c;无…

第三节:Vben Admin登录对接后端login接口

系列文章目录 第一节&#xff1a;Vben Admin介绍和初次运行 第二节&#xff1a;Vben Admin 登录逻辑梳理和对接后端准备 文章目录 系列文章目录前言一、Flask项目介绍二、使用步骤1.User模型创建2.迁移模型3. Token创建4. 编写蓝图5. 注册蓝图 三. 测试登录总结 前言 上一节&…

【零基础】VOSviewer小白入门第一课

官网安装&#xff1a;VOSviewer - Visualizing scientific landscapes 安装完成后即可以打开VOSviewer: 在 wos of science 中搜索关键词&#xff1a;lawdata 选择导出&#xff0c;按照plain text file格式导出&#xff0c;可以到处1000个。选择all record 得到下图 读取vosvi…

zabbix监控业务数据

前言 监控系统除了监控os和数据库性能相关的指标外&#xff0c;业务数据也是重点监控的对象。 一线驻场的运维同学应该深有体会&#xff0c;每天需要向甲方或者公司反馈现场的数据情况&#xff0c;正常情况下一天巡检两次&#xff0c;早上上班后和下午下班前各一次。监控项目…

JWT学习笔记

了解 JWT Token 释义及使用 | Authing 文档 JSON Web Token Introduction - jwt.io JSON Web Token (JWT&#xff0c;RFC 7519 (opens new window))&#xff0c;是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准&#xff08;(RFC 7519)。该 token 被设计为紧凑…

国家能源、华能、一汽、中国交建、中国铁塔、中国烟草、中航信托--校园招聘历年题库和真题

作为准备参加国有企业校园招聘的应聘者&#xff0c;掌握相关企业的招聘试题资料是至关重要的。国家能源、华能、一汽、中国交建、中国铁塔、中国烟草、中航信托等知名国有企业在中国经济中扮演着重要的角色&#xff0c;每年都会举行校园招聘活动&#xff0c;吸引大批毕业生和应…

【项目部署上线】宝塔部署前端Docker部署后端

【项目部署上线】宝塔部署前端&Docker部署后端 文章目录 【项目部署上线】宝塔部署前端&Docker部署后端1.安装依赖1.1 安装mysql1.2 安装Canal1.3 安装redis1.4 安装rabbitmq1.5 安装nacos 2. 部署前端3. 部署后端 1.安装依赖 1.1 安装mysql docker run -d -p 3306:3…

面向面试的机器学习知识点(4)——分类模型

省流版&#xff1a; 本文介绍机器学习中的回归算法&#xff1a;逻辑回归、KNN、SVM、随机森林和XGBoost。作为机器学习的有监督学习方法&#xff0c;分类模型是最重要也是最常见的一类算法&#xff0c;在数据分析等岗位的笔试面试中都是常客&#xff0c;非常值得深入研究&…

基于Prony算法的系统参数辨识matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 Prony算法是一种用于信号处理和系统辨识的经典方法&#xff0c;特别适用于线性时不变系统&#xff08;LTI&#xff09;的频率响应分析以及模拟复指数信号序列。其…