2013-01-07 60 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

的基本步驟是周圍的其他方法:

  • 取用戶輸入
  • 計算哈希在用戶輸入
  • 散列用戶輸入與存儲的證書/散列