使用SHA1 or MD5 加密
= sha1(key | message) = hash
HashPump is a C++ based command line tool to exploit the Hash Length Extension Attack with various hash types supported, including MD4, MD5, SHA1, SHA256, and SHA512.
https://joychou.org/web/hash-length-extension-attack.html
md5:
这里很关键。所以就是md5的值可以逆向的求/看出4个部分 合在一起又可以看做最后的hash结果。
所以说length attack只要把原本的hash值拆成4个部分就得到了4个IV, 然后对要append的新String 再来一次md5就好了。我们这么做的意义不是说length attack后hash还和以前一样【这个是我一开始的误区。。。】 而是md5(key+message+ new message) 的hash值给对方,对方拿original key, apply md5(key+message+ new message) 会得到一样的hash值。然后就会觉得message没被更改过。