ACCESS Base64编码原理

news/2024/9/21 16:35:11/文章来源:https://www.cnblogs.com/yoooos/p/18379198

为了更详细地解释 Base64 编码的过程,我们可以从头开始逐步分解这个过程。假设我们有一段简单的 ASCII 文本 "Hello",我们将详细展示如何将其转换为 Base64 编码。

 1. 获取文本的 ASCII 码

首先,将 "Hello" 转换为其 ASCII 码值。每个字符的 ASCII 码如下:

- 'H' = 72
- 'e' = 101
- 'l' = 108
- 'l' = 108
- 'o' = 111

2. 转换为二进制

将每个 ASCII 码转换为 8 位的二进制数:

- 'H' = 72 -> 01001000
- 'e' = 101 -> 01100101
- 'l' = 108 -> 01101100
- 'l' = 108 -> 01101100
- 'o' = 111 -> 01101111

把这些二进制数拼接在一起:

```
01001000 01100101 01101100 01101100 01101111
```

3. 将二进制数据分组

Base64 编码要求将二进制数据按每 6 位分组。为了满足这一要求,我们需要将上面的二进制串拆分成 6 位的块:

```
010010 000110 010101 101100 011011 000110 1111
```

 4. 处理不足 6 位的块

Base64 编码中,每个 6 位块会被映射到一个字符。由于最后一个块只有 4 位,我们在末尾添加两个零以补齐 6 位,并在编码后的字符串末尾添加一个 "=" 符号来表示填充。完整的块如下:

```
010010 000110 010101 101100 011011 000110 111100
```

5. 将 6 位二进制数转换为十进制

将每个 6 位的二进制块转换为十进制数,以便映射到 Base64 字符集:

```
010010 (18)
000110 (6)
010101 (21)
101100 (44)
011011 (27)
000110 (6)
111100 (60)

 6. 查找 Base64 字符表找到对应的字符:

- 18 -> S
- 6 -> G
- 21 -> V
- 44 -> s
- 27 -> b
- 6 -> G
- 60 -> 8
- 其中的 "=" 是填充符

 7. 拼接编码结果

把得到的 Base64 字符拼接起来,即得到 "SGVsbG8="。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea控制vue项目启动(前后端分离中的前端)(自用

Edit Control…… npm 选中vue的package.json(后端注意设置端口为8080之外的) scripts选serve 启动时不要使用debug模式

无线遥控2.4G芯片 BK2461

BK2461是内核51单片机,加上2.4G RF,支持SDK开发。网上找到的型号表 编译环境是 Keil c51,使用原厂的下载软件和下载器即可。发射电路如下,接收电路多了EEPROM,用途是什么?发射和接收电路可用同一块PCB,然后选贴器件。软件上51单片机开发即可。

[行业调研] 2024世界机器人大会

展会见闻记录看到的零碎信息从身体结构的维度 机械臂: 吸取小物体,放到另一个区域。这种任务在各种环境下都能精准完成,相对于人类有优势。 灵巧手: 看到各种自由度的手,手掌/手指正面覆盖了很多触觉传感器,有些甚至还布置了摄像头。 AGV: 仓库托运重物,物流机器人。 仿生…

[操作系统]IO多路复用

从阻塞 I/O 到 I/O 多路复用 阻塞 I/O,是指进程发起调用后,会被挂起(阻塞),直到收到数据再返回。如果调用一直不返回,进程就会一直被挂起。因此,当使用阻塞 I/O 时,需要使用多线程来处理多个文件描述符。 多线程切换有一定的开销,因此引入非阻塞 I/O。非阻塞 I/O 不会…

firewalld:direct规则

一,官方文档: 1, 选项: https://firewalld.org/documentation/direct/options.html 例子: https://firewalld.org/documentation/direct/examples.html 手册: https://firewalld.org/documentation/man-pages/firewalld.direct.html 2, 直接规则的特点: 1)直接只用iptables或…

反汇编动态调试器之x64dbg

转载:https://cloud.tencent.com/developer/article/2337843x64dbg 是一款开源、免费、功能强大的动态反汇编调试器,它能够在Windows平台上进行应用程序的反汇编、调试和分析工作。与传统的调试器如Ollydbg相比,x64dbg调试器的出现填补了Ollydbg等传统调试器的不足,为反汇编…

Selenium实现元素定位

Selenium提供了定位元素的方法find_element(),该方法被定义在WebDriver类中。一、参数 1、两个参数,参数1根据不同定位方法确定,定位方法如下: (1)通过id定位:使用参数By.ID定位元素的ID属性; (2)通过元素名定位:使用参数By.NAME定位元素的NAME属性; (3)通过标签…

idea创建spring boot项目慢()

将server url改成https://start.aliyun.com 改了阿里镜像,后来看到说改这里也能块点 怎么说呢……快,又好像没快,如快() 就离谱

新质生产力六大核心细分赛道

新质生产力六大核心细分赛道

Graphics2D绘图方法总结

使用Java的Graphics2D类,绘制业务需要的图形模板,然后在具体流程中填充数据,并且将图形存储起来。一、简介 在开发中可能会遇到这样一类场景,业务复杂度不算太高,技术难度不算太深,但是做起来就很容易把人整破防,伤害很高侮辱性很强的:绘图。 绘图最怕有人挑刺:这里变…