文章目录

Base64

由 雾島风起時 发布

Base64

话不多说,直接上题(BUUCTF)

Base64 编码步骤

步骤 1:将数据按 3 字节分组

  • 二进制数据按每 3 字节(24 位)为一组拆分
    例如:字符串 "Man" 的 ASCII 码为 0x4D 0x61 0x6E

步骤 2:将 24 位拆分为 4 个 6 位块

  • 3 字节(24 位) → 分割为 4 个 6 位块
    示例:
    0x4D (01001101) + 0x61 (01100001) + 0x6E (01101110)
    合并为 24 位:010011 010110 000101 101110
    对应 4 个 6 位值:1922546

步骤 3:将 6 位值映射到 Base64 字符表

  • 查表(索引 0~63 对应 A-Z,a-z,0-9,+,/):
    19→T22→W5→F46→u
    结果:"TWFu"

步骤 4:处理不足 3 字节的情况

  • 情况 1:剩余 1 字节(8 位)
    • 补 4 个 0 位 → 生成 2 个 6 位块,后补 ==
      例如:"A"0x41)→ 010000 010000"QQ=="
  • 情况 2:剩余 2 字节(16 位)
    • 补 2 个 0 位 → 生成 3 个 6 位块,后补 =
      例如:"BC"0x42 0x43)→ 010000 100100 001100"QkM="

Base64 解码步骤

  1. 移除填充的 =,计算有效字符数
  2. 每个字符查表转换为 6 位二进制
  3. 合并所有 6 位块,按 8 位分组恢复原始数据

Base64 编码特点:

由 A-Za-z0-9+/= 组成的 64 个字符,通常末尾有 == 的就是 Base64

flag{THE_FLAG_OF_THIS_STRING}

0条评论

发表评论