2014-10-29 93 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