Base64加密/解密

问题反馈

Base64加密/解密工具用于将二进制数据编码为文本字符串或将Base64编码的文本解码回二进制数据,常用于数据传输和存储。

Base64编码

复制Base64内容

Base64解码

复制文本内容
Base64是一种基于64个可打印字符来表示二进制数据的编码方式。它常用于在需要以文本形式处理二进制数据的场景中,例如在电子邮件的MIME格式中、URL编码、嵌入图片到HTML或CSS中,以及在数据传输和存储过程中。以下是对Base64的详细说明: ### 编码原理 1. **输入数据分割**:将输入的二进制数据按每3字节(24位)一组进行分割。如果数据长度不是3的倍数,则使用0字节填充,使其长度凑满3字节。 2. **位移操作**:每3字节的数据块被分割成4个6位的单元(因为 \(3 \times 8 = 4 \times 6\))。每个6位单元代表一个十进制数,这个数在0到63之间。 3. **映射字符**:使用Base64字符表将每个6位单元映射为一个Base64字符。Base64字符表包含以下64个字符: - 大写字母:A-Z (0-25) - 小写字母:a-z (26-51) - 数字:0-9 (52-61) - 加号(+):62 - 斜杠(/):63 4. **填充字符**:如果输入数据长度不是3的倍数,则在编码后的Base64字符串末尾使用等号(=)进行填充,使编码后的字符串长度是4的倍数。 ### 解码原理 1. **去掉填充字符**:去掉Base64编码字符串末尾的等号(=)填充字符。 2. **字符映射**:将Base64字符串中的每个字符映射回相应的6位二进制数。 3. **组合二进制数据**:将所有6位的二进制数重新组合成8位的字节。每4个Base64字符还原为3个字节的数据块。 4. **还原原始数据**:去掉可能存在的用于凑满3字节的数据填充。 ### 特点和应用 - **效率和简洁**:Base64编码后数据长度约为原始数据的4/3,因此虽然数据量增加了,但保持了简洁性和可读性。 - **无特殊字符**:编码后的字符串仅包含字母、数字和少量符号,避免了因特殊字符导致的数据传输问题。 - **应用广泛**:用于邮件传输、数据存储、URL传递参数、嵌入图像到HTML/CSS、Web API中传输数据等。 ### 示例 假设我们需要编码字符串“Hello”: 1. **原始数据**:`H` `e` `l` `l` `o`(ASCII码分别为 72, 101, 108, 108, 111) 2. **二进制表示**:`01001000` `01100101` `01101100` `01101100` `01101111` 3. **24位分组**:`01001000 01100101 01101100` `01101100 01101111` 4. **6位分割**:`010010` `000110` `010101` `101100` `011011` `011011` `111100` 5. **映射字符**:`SGVs bG8g` 6. **Base64编码**:`SGVsbG8g` 通过Base64编码后的“Hello”变为“SGVsbG8g”,并在需要时可以反向解码回原始数据。