2013-02-22 60 views
0

django文檔,它說的Django創建密碼字符串algo$hash存儲在Django和彩虹表密碼

其中ALGO是pbkdf2默認和散列密碼字符串的sha256哈希值。

在某些articles,我讀了一個安全的密碼使用隨機salt,然後將其存儲在數據庫中的每個user.This很難讓誰試圖打破使用rainbow table s.But密碼惡意用戶創建當我爲我的django項目檢查auth_user表時,我只能找到一個字符串,每個用戶開始'pbkdf2_sha256$'。我找不到任何存儲的鹽。

這是否意味着存儲的密碼容易受到使用raibow表的攻擊?

+0

你的「單串」看起來像什麼?我得到了'pbkdf2_sha256 $ 10000 $ GDDpkxbrqR4j $ DnpLSj4P91ylVfYvtWFs69cdhJiSnLP1G1rw9m4CLCY ='',它包含一個鹽份''GDDpkxbrqR4j'',默認爲'pbkdf2_sha256'算法。 – okm 2013-02-22 05:33:41

+0

好的,我的也是從pbkdf2_sha256 $開始的,但是爲什麼鹽沒有存儲在數據庫中呢? – damon 2013-02-22 05:55:05

回答

1

Django文檔明確指出,它散列的口令與鹽herehere

一個用戶對象的密碼屬性是在這個格式的字符串:

hashtype $鹽$哈希

這是哈希類型,鹽和哈希,由美元符號 字符分隔。

Hashtype是sha1(默認),md5或crypt - 使用 執行密碼的單向散列算法。鹽是一個隨機字符串 用於對原始密碼進行加鹽以創建哈希。請注意,僅在具有標準Python crypt模塊可用的平臺上才支持crypt 方法。

所以會出現2個美元符號,而在之間是鹽。