密码学crypto学习笔记
密码学crypto学习笔记
HEX、DEC、OCT 和 BIN含义如下:
- HEX,英文全称 Hexadecimal,表示十六进制。
- DEC,英文全称 Decimal,表示十进制。
- OCT,英文全称 Octal,表示八进制。
- BIN,英文全称 Binary,表示二进制。
1.Quoted-printabl 可打印字符 引用 编码
Quoted-printable编码是一种二进制数据在Internet上传输时的一种编码方式。 它将二进制数据转换成可打印的ASCII字符。 这种编码方式将每个非可打印字符 (ASCII值小于32或大于126),如二进制数据的控制字符或扩展字符 (如汉字),转换为一个等号”=“加上它的ASCII值的16进制表示,如”x0A”会变成”=0A”。
2.栅栏密码
栅栏密码是一种简单的替换式密码
加密过程
以明文 “THIS IS ZHISHITOM” 为例,去除空格后得到 “THISISZHISHITOM”。如果设置栏数为3进行加密,加密过程如下:
- 第一组:T H I S I
- 第二组:S Z H I S
- 第三组:H I T O M
按列取出字母得到:TSH HZI IHT SIO ISM,然后将这些字母连在一起,形成加密后的密文 “TSHHZIIHTSIOISM”。
解密过程
解密是加密过程的逆过程。对于上述加密后的密文 “TSHHZIIHTSIOISM”,首先将其分割成与加密时相同数量的组:
- T S H
- H Z I
- I H T
- S I O
- I S M
然后按列顺序取字母,得到解密后的明文 “THISISZHISHITOM”。
3.Rabbit加解密算法:
Rabbit 是一种流密码算法(像 “无限长的密码本”,逐位生成密钥流和明文混合),用大白话讲就是:
- 准备 “密码本”:用一个密钥(比如 16 字节的字符串)初始化算法,生成一个 “动态变化的序列”(密钥流);
- 加密:把明文的每个字节,和密钥流的对应字节做 “异或” 运算(简单的二进制位运算),得到密文;
- 解密:用同样的密钥生成一模一样的密钥流,再把密文和密钥流做异或,就能还原出明文。
核心特点:速度快、密钥短(通常 128 位),CTF 里偶尔会遇到,但不如 AES、DES 常见。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 24kmagic!
评论

