Hash长度扩展攻击

使用场景: 在已知密文的长度和密文与可控数据组合后的md5值后,可构造指定值使用密文和可控数据组合后得到的哈希值也是已知的

已知:
md5(secret+data)=571580b26c65f306376d4f64e53cb5c7
data=data
len(secret)=20
未知:
secret

kali中使用hashpump:

[root@kali:~/HashPump  *]# hashpump Input Signature: 571580b26c65f306376d4f64e53cb5c7Input Data: dataInput Key Length: 20Input Data to Add: abc7db18a2831cdab27425f299ca09f034edata\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00abc

附加值随意,这里为abc 即可得到

md5(secret+data\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00abc)=7db18a2831cdab27425f299ca09f034e