因此,您的任务是创建一个开放源码密码身份验证系统,但您希望尽可能少透露哈希函数的实现情况。您能否编写一个函数,该函数接受密码字符串和salt字符串,并输出咸哈希字符串而不显示散列函数?
截止日期:7月6日
人气竞赛:所以被投票认为最难搞清楚哈希方法的人。
限制:必须使用公认的安全散列函数
发布于 2014-06-25 01:59:15
没有灵感的解决方案-用哈希代码隐藏哈希函数。
import base64
a = b'66726F6D20686173686C696220696D706F72742A3B7072696E74287368613235'
b = b'3628627974657328696E70757428292B696E70757428292C277574662D382729'
c = b'292E686578646967657374282929232048656C6C6F2074686572652021402324'
exec(base64.b16decode(a+b+c))发布于 2014-07-05 23:56:37
这个不是散列函数,不需要盐,而且完全不安全,但是你能分辨出它是什么吗?
def f(x):
a,b=ord(x),ord(x)+13
if not (97<=a<=122 or 65<=a<=90):return x
if (65<=a<=90 and b>90) or b>122: b-=26
return chr(b)
print(''.join(f(i) for i in input()))是rot13
下面是一个实际的散列函数。
import hashlib
salt = b'cHJpbnQoaGFzaGxpYi5zaGEyNTYoYnl0ZXMoaW5wdXQoKStpbnB1dCgpLCd1dGYtOCcpKS5oZXhkaWdlc3QoKSkKZXhpdCgp';import base64;exec(base64.b64decode(salt))
print(hashlib.md5(bytes(input(), 'utf-8') + salt).hexdigest())请注意,它不是md5,也不使用硬编码的盐类。基于qwr的解。
https://codegolf.stackexchange.com/questions/32433
复制相似问题