SHA1哈希澄清

时间:2017-05-30 10:55:36

标签: python encryption hash sha1

我有以下python代码:

from hashlib import sha1
secretString=b"this is the secret string"
publicData=b"x10291434"
hash=sha1(publicData+secretString).hexdigest()

现在,如果我发送publicDatahash供公众使用。这样安全吗?我想检查一下,当用户提供publicData后,它与最初与我hash发送的secretKey相匹配。

我只是想检查一下我是否正确这样做

2 个答案:

答案 0 :(得分:1)

看起来你正试图做HMAC

您应该尝试使用itsdangerous

之类的内容
>>> from itsdangerous import Signer
>>> s = Signer('secret-key')
>>> s.sign('my string')
'my string.wh6tMHxLgJqB6oY1uT73iMlyrOA'
>>> s.unsign('my string.wh6tMHxLgJqB6oY1uT73iMlyrOA')
'my string'

答案 1 :(得分:-1)

嗯,SHA-1不被认为是一种安全的哈希算法,所以不,它不安全。

  

对于资金充足的对手,SHA-1不再被认为是安全的。 2005年,密码分析师发现对SHA-1的攻击表明该算法可能不够安全,无法持续使用[4],自2010年以来,许多组织都建议将其替换为SHA-2或SHA-3。[5] [6] [7]微软,[8]谷歌,[9] Apple [10]和Mozilla [11] [12] [13]都宣布他们各自的浏览器将在2017年之前停止接受SHA-1 SSL证书。

来源:https://en.wikipedia.org/wiki/SHA-1

更多阅读:https://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html