当代码混淆到一定程度,就算是常见的加密也可能难以识别出来,总结一下常见的加密算法特征,希望不被一些其他原因混淆视听
# Tea 系列
tea 系列加密可谓常见,甚至腾讯都在魔改 tea 使用到数据加密中。
Tea 系列加密都会有个叫 Delta 的东西,其常见值为 0x9E3779B9或0x61C88647
,这个东西是可以被随意改变的,但是如果见得这串熟悉的数据,那就基本可以确定是 tea 系列加密了
# Tea
普通 tea 可以被攻击 (别问怎么攻击,我也不知道)
每次加密处理 64 位数据,并且被分别两组
加密解密简单,手逆就行了
# XTEA/TEAN
可以被攻击,特征与 TEA 相似,但还比 tea 多一个特征
加密解密简单,手逆就行了
# XXTEA
最厉害的 tea 类型加密,加密逻辑比较复杂,不像上面两个看两眼就能写解密代码,同时原字符串长度可以不是 4 的倍数了,特征和上面两个也很不一样
# AES 加密
AES 为对称加密,同时也是分组加密,每组处理 128 位数据 (16 个字节),按密钥长度分为 AES128 (16 字节密钥 10 轮加密),AES192 (24 字节密钥 12 轮加密),AES256 (32 字节密钥 14 轮加密)。
new_s_box = [,,,,,] | |
new_contrary_sbox = [0]*256 | |
for i in range(256): | |
line = (new_s_box[i]&0xf0)>>4 | |
rol = new_s_box[i]&0xf | |
new_contrary_sbox[(line*16)+rol] = i | |
print(new_contrary_sbox) |
# sha1
不安全的加密算法,不可逆
# BlowFish
两个盒用来加密
# sm4 (国密)
分组加密,和 AES 特征很像。
# rc4 加密
加密解密是同一套算法
# DES 加密
主要加密特征是一堆表
# base58
和普通 base 加密有很大不同,通过取模进行加密
# base64
普遍的加密