2014-10-29 90 views
0

我正在使用mvc應用程序,我試圖加密我的密碼。我已經加密密碼onclick和它的工作正常。如何在使用CryptoJs的mvc控制器中解密相同的值。如何在MVC中使用cryptoJs解密代碼中的加密值

這裏是我的代碼:

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/tripledes.js"></script> 
     var secretString = document.getElementById("txtPassword").value; 
     var password = "$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/"; 
     debugger; 
     //document.getElementById("secretstring").innerHTML = secretString; 
     // var pass = document.getElementById("txtPassword").value; 

     var encrypted = CryptoJS.TripleDES.encrypt(secretString, password); 


     // document.getElementById("encryptedstring").innerHTML = encrypted.toString(); 

     //var decrypted = CryptoJS.TripleDES.decrypt(encrypted.toString(), password); 
     //var finaltext = decrypted.toString(CryptoJS.enc.Utf8); 
     //document.getElementById("txtPassword").value = encrypted; 

我必須通過加密值到C#代碼,並使用cruptoJs.TripleDES.decrypt解密那裏本身。

有人幫我嗎? 在此先感謝。

+0

你可能想看看TripleDes類,但是你確定你在做什麼是值得的嗎?如果你想確保密碼不能被數據包嗅探器提取或以其他方式截取,那麼SSL就是一種方法,而不是使用JavaScript來加密。如果您的服務器端代碼需要加密密碼,那麼atacker不需要明文密碼,他們只需發送加密密碼即可。 http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledes(v=vs.110).aspx – 2014-10-29 10:35:55

+0

嗨,我試圖驗證用戶使用ldap,我從應用程序得到一個異常我正在發送簡單密碼的安全團隊。用戶憑證通過網絡以明文形式發送以進行身份​​驗證。 入侵者可以嗅探網絡並捕獲用戶憑證。 SSo我決定在使用javascript調用ldap連接方法之前加密密碼。我做錯了什麼,如果是的話請引導我。 – user1557020 2014-10-29 10:42:26

+0

我不認爲它比發送純文本密碼更安全,因爲任何可以嗅探網絡的人都可以查看將頁面發送給用戶的請求,並且這包含解密密碼所需的所有信息,其次即使他們只有密碼,如果你有一個需要加密密碼的服務,那麼所有攻擊者必須做的欺騙登錄才能重新發送加密的密碼。短版本,使用SSL。 – 2014-10-29 10:47:46

回答

2

還有就是.NET庫中的3DES提供商,這裏是如何使用它的一個很好的例子:How to implement Triple DES in C# (complete example)

原則上,如果您的客戶端上使用3DES你只是用另一個3DES實現的服務器上,你不需要使用相同的實現 - 而且因爲cryptoJS是JavaScript,所以它主要限於客戶端使用。

這就是說,你的字符串不能通過網絡安全地發送,因爲你的源代碼清楚地標識了用於加密的方法+密碼。因此,任何能夠嗅探到您服務器的數據都可以解密。

要真正加密流量安全,您需要使用SSL(= HTTPS)。

+0

非常感謝 – user1557020 2014-10-31 08:04:15