2014-12-02 151 views
-1

我一直在研究一個項目,將常規的MVC應用程序轉換爲Web API應用程序。現在安全系統做得不好,我想知道該怎麼做。我請你們幫助我弄明白。當前系統使用以下代碼創建加密密碼。 (可能不是最好的方式,但它是它是什麼。)MD5CryptoServiceProvider解密密碼(如果它甚至可能)

MD5CryptoServiceProvider x = new MD5CryptoServiceProvider(); 
byte[] data = System.Text.Encoding.ASCII.GetBytes(unHashed); 
data = x.ComputeHash(data); 
return System.Text.Encoding.ASCII.GetString(data); 

現在的問題是可以的方法來創建解密密碼?我一直在玩代碼,並不能完全弄明白。我對此並不是很滿意,所以我希望在這裏有人能幫助我。

在此先感謝!

+3

你不能那樣做。你需要了解_hashing_的含義。 (儘管MD5不安全) – SLaks 2014-12-02 04:06:51

+1

是的,根據你的僱主對此事的看法,你可以使用MD5破解程序恢復所有或幾乎所有的用戶密碼,然後使用一些更好的方案對它們進行重新編碼。但是,作爲一般原則的問題,哈希值是不透明的,只有在用戶重置密碼(您可能會強制他們這樣做)時才能將用戶升級到新的哈希值。 – hobbs 2014-12-02 04:12:14

+0

也相關(可以說是dupe):http://stackoverflow.com/questions/1240852/is-it-possible-to-decrypt-md5-hashes – hobbs 2014-12-02 04:24:49

回答

0

實際上不可能解碼哈希值。如果你想加密/解密一些值,你應該使用對稱密碼(例如triple des)而不是散列算法。