Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在MVC中使用cryptoJs对代码隐藏中的加密值进行解密_Javascript_C#_.net_Asp.net Mvc - Fatal编程技术网

Javascript 如何在MVC中使用cryptoJs对代码隐藏中的加密值进行解密

Javascript 如何在MVC中使用cryptoJs对代码隐藏中的加密值进行解密,javascript,c#,.net,asp.net-mvc,Javascript,C#,.net,Asp.net Mvc,我正在开发mvc应用程序,我正在尝试加密我的密码。我已经加密了密码onclick和它的工作良好。如何使用CryptoJs在mvc控制器中解密相同的值 这是我的密码: <script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/tripledes.js"></script> var secretString = document.getElementById("txtPas

我正在开发mvc应用程序,我正在尝试加密我的密码。我已经加密了密码onclick和它的工作良好。如何使用CryptoJs在mvc控制器中解密相同的值

这是我的密码:

<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;

var secretString=document.getElementById(“txtPassword”).value;
var password=“$1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/”;
调试器;
//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(),密码);
//var finaltext=decrypted.toString(CryptoJS.enc.Utf8);
//document.getElementById(“txtPassword”).value=encrypted;
我必须将加密的值传递给C#code,并使用cruptoJs.TripleDES.decrypt对其本身进行解密

有人帮我吗?
提前感谢。

在.NET库中有一个3DES提供程序,下面是一个如何使用它的好例子:

原则上,如果您在客户端使用3DES,那么您只需在服务器上使用另一个3DES实现,就不需要使用相同的实现——而且由于cryptoJS是JavaScript,因此它主要局限于客户端使用

也就是说,您的字符串不能通过网络安全地发送,因为您的源代码清楚地标识了用于加密的方法+密码。因此,任何能够嗅探进入服务器的数据的人都可以解密


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

您可能需要查看TripleDes类,但是您确定您所做的工作值得吗?如果您想确保密码不能被数据包嗅探器提取或以其他方式截获,那么SSL是一种方法,而不是使用javascript加密。如果服务器端代码需要加密密码,那么atacker不需要明文密码,他们只需发送加密密码即可。您好,我正在尝试使用ldap对用户进行身份验证,我从应用程序安全团队收到一个异常,我正在发送普通密码。用户凭据通过网络以明文形式发送以进行身份验证。入侵者可以嗅探网络并捕获用户凭据。SSo我决定在使用javascript调用ldap连接方法之前加密密码。如果我做错了什么,请告诉我。我不认为这比发送纯文本密码更安全,因为任何能够嗅探网络的人都可以首先查看向用户发送页面的请求,这包含解密密码所需的所有信息,第二,即使他们只有密码,如果您有一个需要加密密码的服务,那么攻击者要欺骗登录名所要做的就是重新发送加密密码。短版本,使用SSL。