某银行客户端以安全着称,有有天,你抓到了局域网中的网银登录流量。在这个流量中,密码字段的值为ac22543d5382cbf48b6ebcf6e40f123d9ca4b91f9998e4c2f2422402。根据分析,你获得了如下的线索:
上面抓到的登录流量密码字段是SHA系列哈希算法的哈希值。
这个登录密码也是银行卡的ATM取款密码。
登录密码的哈希值是加盐之后计算的结果,根据逆向分析,盐的值是用户名的拼音,而你推测出了流量来自于邻居“张三丰”
有了这些线索之后,你能够分析出密码是什么吗?
flag提交格式:flag {密码哈希算法盐}
举例:flag {123456_SHA999_lisi}
答案:根据长度判断为SHA224,银行卡密码为6位,盐值为张三丰写如下代码,运行得出答案
扫描二维码关注公众号,回复:
9543926 查看本文章
from hashlib import sha224
def encrytion224(str,salt):
flag = sha224(str)
flag.update(salt)
return flag.hexdigest()
if __name__ == "__main__":
strnum = range(100000,999999)
for i in strnum:
tempstr = str(i)
pwd = encrytion224(tempstr,"zhangsanfeng")
if( pwd == "ac22543d5382cbf48b6ebcf6e40f123d9ca4b91f9998e4c2f2422402"):
print tempstr