首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏哈希函数

隐藏哈希函数
EN

Code Golf用户
提问于 2014-06-24 15:30:36
回答 2查看 725关注 0票数 -1

因此,您的任务是创建一个开放源码密码身份验证系统,但您希望尽可能少透露哈希函数的实现情况。您能否编写一个函数,该函数接受密码字符串和salt字符串,并输出咸哈希字符串而不显示散列函数?

截止日期:7月6日

人气竞赛:所以被投票认为最难搞清楚哈希方法的人。

限制:必须使用公认的安全散列函数

EN

回答 2

Code Golf用户

回答已采纳

发布于 2014-06-25 01:59:15

Python 3

没有灵感的解决方案-用哈希代码隐藏哈希函数。

代码语言:javascript
复制
import base64

a = b'66726F6D20686173686C696220696D706F72742A3B7072696E74287368613235'
b = b'3628627974657328696E70757428292B696E70757428292C277574662D382729'
c = b'292E686578646967657374282929232048656C6C6F2074686572652021402324'

exec(base64.b16decode(a+b+c))
票数 3
EN

Code Golf用户

发布于 2014-07-05 23:56:37

Python

这个不是散列函数,不需要盐,而且完全不安全,但是你能分辨出它是什么吗?

代码语言:javascript
复制
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

下面是一个实际的散列函数。

代码语言:javascript
复制
import hashlib
salt = b'cHJpbnQoaGFzaGxpYi5zaGEyNTYoYnl0ZXMoaW5wdXQoKStpbnB1dCgpLCd1dGYtOCcpKS5oZXhkaWdlc3QoKSkKZXhpdCgp';import base64;exec(base64.b64decode(salt))
print(hashlib.md5(bytes(input(), 'utf-8') + salt).hexdigest())

请注意,它不是md5,也不使用硬编码的盐类。基于qwr的解。

票数 -1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/32433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档