2015-04-21 62 views

回答

1

散列是一個one-way function,而不是像加密那樣的雙射。考慮丟失的原始信息。

通常,您將使用輔助輸入(明文密碼嘗試),執行相同的一組哈希操作,並比較結果以推斷匹配源(如密碼),禁止(理想情況下非常罕見)散列衝突。

密碼散列函數是一種散列函數,它被認爲實際上不可能反轉,即僅從其散列值重新創建輸入數據。這些單向散列函數被稱爲「現代密碼學的主要工具」。

https://en.wikipedia.org/wiki/Cryptographic_hash_function

你能可能要添加一些額外的背景?

編輯

與下面的評論,你需要做的是通過明文在Azure實例的哈希,並與哈希結果比較。通過他們的會員資格,將會有一個存儲過程爲您執行此操作。

然而,設計,密碼是完全不可挽回的,直到如果/當他們的特定哈希算法中發現弱點。這就是爲什麼這些系統需要安全問題/電子郵件驗證步驟的原因:他們實際上並不知道您的密碼,並且無法爲您檢索

例如: 'TerribleHash'

使用 'TerribleHash',可怕的散列算法,用戶ID 1個寄存器。 ASP會員生成一個'salt1234'的IV/salt(初始化向量),他們輸入'password'的密碼(就像很多人一樣)。 'salt1234password'然後是'可怕的'重複5,000次'8h'。 '8h'實際上並不包含密碼或IV。

要檢查用戶是否可以登錄,他們輸入他們的用戶ID(或唯一的用戶名/電子郵件映射到用戶ID)和密碼'nope'。他們的IV/salt'salt1234'被回收,'salt1234nope'被TerribleHashhed 5,000次給'96'。 登錄被拒絕。他們再次嘗試使用'密碼','salt1234password'是可怕的哈希5,000次給'8h',並且訪問授權。當然,TerribleHash是一個可怕的算法,兩個字符不足以避免衝突,因此'91u4hfah9'可能會導致'有效'登錄(也可能是'8h'),所以沒有人會使用TerribleHash和他們會使用類似SHA256/SHA512的微小碰撞頻率,但我用它來說明這個散列既不包含密碼也不包含初始化向量

+0

也許我正在使用不同的術語?我收到由移動服務隨機字符組成的密碼,我需要知道輸入的確切密碼。例子是我收到類似「AMe23423drfwsrdsfbbcsdf +/342 ==」的東西,我需要將它解碼爲它的(據說是)原始輸入,即「密碼」。我希望我給了額外的背景。我盡我所能地描述了它。謝謝! – FvseCatcher

+0

除非你想等幾個世紀(甚至是千年)在iPhone上強制哈希,否則你不能。考慮在散列字符串中丟失的原始密碼並且完全無法恢復。 – Ehryk

+0

我在我的答案中添加了一個例子(希望),以說明爲什麼它不能'解碼'散列。 – Ehryk

相關問題