从base64到哈基密语
前言
b站上看到哈基米加密语,从类base64加密的哈基米1.0到端到端密钥的哈基米2.0,网站做的十分漂亮,可学习
Base64加密
ASCII码有128个字符,每个字符8位二进制,base64加密使用64个字符,6位二进制。
Base64 是一种基于 64 个可打印字符**(A-Z、a-z、0-9、+、/)**来表示二进制数据的编码方式,常用于在文本协议中传输二进制数据。它通过将数据分组、分割和映射到字符集的方式实现编码。
编码原理
Base64 的核心原理是将输入数据按每三个字节(24 位)分组,再将其分割为四个 6 位的数据块。每个 6 位数据块通过查找 Base64 字符集映射为对应的字符。如果输入数据长度不是 3 的倍数,则通过补位字符 = 填充。
- 以下是编码步骤:
- 将输入数据按每 3 个字节分组,形成 24 位二进制块。
- 将 24 位二进制块分割为 4 个 6 位数据块(不足6的倍数,用0补齐)。
- 使用 Base64 字符集将每个 6 位数据块映射为对应字符。
- 若数据长度不足 3 的倍数,用
=补齐,确保输出长度为 4 的倍数。
- 例如,字符串 Man 的编码过程:
- 转换为二进制:M -> 01001101, a -> 01100001, n -> 01101110
- 分割为 6 位块:010011 010110 000101 101110
- 映射字符集:TWFu
解码原理
解码是编码的逆向过程:
- 将 Base64 字符串中的每个字符映射回 6 位二进制。
- 将这些二进制数据重新组合为 8 位字节。
- 去掉补位字符 =,还原原始数据。
应用场景
Base64 编码广泛应用于以下场景:
- 数据传输:在 HTTP 协议中传输二进制数据(如图片、文件等)。
- 数据存储:将二进制数据转换为可打印字符,便于存储在数据库中。
- 协议编码:如邮件传输协议中,用于安全传递二进制文件。
注意事项
Base64 仅是一种编码方式,并不具备加密功能。它无法保护数据安全,敏感信息需结合加密技术(如 HTTPS)使用。
以下为常用的base64索引表:

实践一下
windows的cmd界面中可输入代码,直接获取文件内容的base64编码(或解码),并输出结果到另文件。
编码
1 | certutil -f -encode "输入文件" "输出文件" |
解码
1 | certutil -f -decode "输入文件" "输出文件" |