2016-12-01 24 views
-1

我使用Flask來開發一個小型的web服務,使用generate_password_hash後,用戶密碼保存在mysql中。 就像:password =「123345」,mysql中的存儲值是generate_password_hash(12345)如何解開由generate_password_hash散列的密碼?

不是我想要實現的功能回顧我的密碼,但我遇到問題時,解開存儲的密碼。如何將generate_password_hash(12345)轉換爲12345

+4

密碼散列的目的是爲了防止任何人這樣做。 – user2357112

+0

@ user2357112那麼如何設計取回我的密碼的功能呢? – BlackMamba

+2

你不知道。如果您嘗試驗證登錄嘗試,則檢查用戶提供的密碼是否與哈希匹配。如果您嘗試實施密碼恢復功能,請改爲使用密碼重置功能。 – user2357112

回答

3

Wikipedia

[MD5]是一種數學算法任意大小的爲固定大小的一個比特串(散列函數),其被設計成也可以是單向地圖數據功能,即這是一個不可行的功能,以反轉

撇開潛在的漏洞,沒有辦法獲得產生散列的原始數據。這就是主意。如果一些壞人可以訪問你的數據庫,他將無法知道你的用戶的密碼。

1

解開密碼是非常困難的,否則在哈希過程中沒有任何價值,並且可以將簡單的密碼存儲在數據庫中。

也就是說,那裏有不速之客的程序需要大量的處理器能力,並運行很長時間,這可以解開非常簡單的密碼。

如果你想讓你自己變得非常簡單(而且效率非常低),你需要基本上通過generate_password_hash函數傳遞所有可能的密碼,直到找到一個產生相同散列的密碼。基本上從所有單字符密碼開始,然後輸入2個字符的密碼等等。關於如何更高效地在線執行此操作有很多。