网络安全 / A LEAF IN THE GARDEN

编码

网络安全 · crypto。来自 Daily Learning 的学习笔记。

概念

编码是将信息从一种形式转换为另一种形式的过程。

  • 可逆
  • 无秘钥
  • 方便数据传输

分类

进制编码

二进制

每个字符用 8 位二进制表示

十六进制

字符用 2 位十六进制表示,即 2 个 4 位二进制

1100 0011
C0   03

ASCII

字符对应的十进制数值

Base 编码

Base16

将二进制数转化为十六进制并拼接

Base32

码表

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 2 3 4 5 6 7

将数据二进制串每 5 位一组,每次取 8 组,从码表中查找对应的字符,若不足 8 组则补 =。

011000010110001001100011
01100 00101 10001 00110 0011
01100 00101 10001 00110 00110 00000 00000 00000
M     F     R     G     G     =     =     =

Base64

码表

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 + /

将数据二进制串每 6 位一组,每次取 4 组,从码表中查找对应的字符,若不足 4 组则补 =。

011000010110001001100011
011000 010110 001001 100011
011000 010110 001001 100011 000000 000000
Y      W      J      j      =      =

Base85

将 4 个字节的二进制组成 32 位整型,转换为 85 进制,每一位加 32 转为 ASCII 字符。

01110011011101010111001001100101
1937076837                  32位整型
37 09 17 44 22              85进制
69 41 49 54 54              +32
F  *  2  M  7               ASCII

URL 编码

URL 中,除了数字、字母、特定符号(/,:@等)之外的字符,在 ASCII 码的十六进制前加 % 进行编码。

<space>     字符
32          ASCII码
0x20        十六进制
%20         URL编码

识别

特征编码
0 和 1,8 位一组Binary
0-9 a-f,成对Hex
字母、数字、+/,结尾 =Base64
大写字母、2-7Base32
% + 两位十六进制URL 编码
一堆数字(32~126)ASCII 十进制
各种特殊符号混杂Base85/91 等

工具

  • CyberChef
  • Ciphey