2013-01-07 41 views
1

我正在尝试从Galaxy框架中检索密码并进行身份验证。我成功地检索了散列(sha1)格式的密码。我如何使用用户输入的密码进行验证?我的第一个猜测是将哈希(sha1)转换为正常字符串并进行身份验证。那可能吗?如果是这样,我怎么把它转换成字符串?如何在Python中验证散列(sha1)密码?

+4

我认为你应该做相反,哈希的一点是,你不能从它的纯文本plassword。计算密码中的散列并比较两个散列。 –

+0

好的。这可以做到。 Python中是否有任何inbuild函数将普通文本转换为散列(sha1)格式?谢谢 – user1881957

回答

2

你不能。这将是极其困难从其哈希代码中获取纯文本,这正是我们发明哈希的原因。尝试相反:将纯文本转换为散列,然后进行比较。

如何转换:

import hashlib 
s = "plain" 
h = hashlib.sha1(s).hexdigest() 
+0

谢谢@Skyler。 – user1881957

2

...我的第一个猜测将被转换散列(SHA1)到正常的字符串...

这就是cryptographic hash functions尽量避免(除其他事项外) - 这个属性被称为pre-image resistance

的基本步骤是周围的其他方法:

  • 取用户输入
  • 计算哈希在用户输入
  • 散列用户输入与存储的证书/散列