Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 使用jQuery加密,使用C解密#_Javascript_C#_Asp.net_Security_Encryption - Fatal编程技术网

Javascript 使用jQuery加密,使用C解密#

Javascript 使用jQuery加密,使用C解密#,javascript,c#,asp.net,security,encryption,Javascript,C#,Asp.net,Security,Encryption,我喜欢实现mechanisam,其中客户端浏览器上的字符串在页面发布到服务器之前使用密钥加密,然后我可以使用服务器端C#代码使用相同的密钥解密发布的字符串 我使用随机类在每个页面请求上生成唯一的键 ASPX文件 C# 更新1 我在HDFC银行登录页面上看到了相同的机制,他们首先加密用户密码,然后发布表单。我将重新考虑您所做操作的用法。您正在使用密钥加密某些内容,然后将该内容与密钥一起发送到服务器。当然,读取值会更加困难,可能会吓坏一些低级嗅探器,但它并不安全。是的 这样想吧。爱丽丝想给鲍勃寄一封

我喜欢实现mechanisam,其中客户端浏览器上的字符串在页面发布到服务器之前使用密钥加密,然后我可以使用服务器端C#代码使用相同的密钥解密发布的字符串

我使用随机类在每个页面请求上生成唯一的键

ASPX文件 C# 更新1
我在HDFC银行登录页面上看到了相同的机制,他们首先加密用户密码,然后发布表单。

我将重新考虑您所做操作的用法。您正在使用密钥加密某些内容,然后将该内容与密钥一起发送到服务器。当然,读取值会更加困难,可能会吓坏一些低级嗅探器,但它并不安全。是的

这样想吧。爱丽丝想给鲍勃寄一封情书,但爱丽丝不想让鲍勃以外的任何人读这封情书,所以她把它放在保险箱里。认为情书是安全的,她把它寄给鲍勃。但是她记得鲍勃不能打开保险箱,所以在同一个包裹里,她还把钥匙放在保险箱里

这里的问题是,邮局或任何其他有权接触包裹的人都可以打开保险箱。在这个类比中,Alice是客户端(web浏览器,javascript),网线是邮局,服务器是Bob

有几种方法可以使用javascript对其进行加密。例如:

如果您仍然希望在客户端加密数据(这样做没有坏处),我将避免将请求中的密钥发送回服务器。服务器将其发送到客户端就足够了。那么客户就不必把它寄回去了。相反,您可以存储在服务器端的会话中。这样,你至少可以让中间人的威胁小一点

但是在这个场景中,我将使用它来发送数据

HTTPS统一资源标识符(URI)方案具有相同的 标准HTTP方案的语法,除了其方案令牌。 但是,HTTPS向浏览器发出信号,要求使用添加的加密层 SSL/TLS用于保护流量。SSL/TLS特别适合HTTP 因为它可以提供一些保护,即使只有一侧的 通信是经过身份验证的。HTTP就是这样 Internet上的事务,通常只有服务器 已验证(由检查服务器证书的客户端验证)


有人可能会争辩说https,但它仍然是发送敏感数据的更好选择。

我会重新考虑您正在做的事情的用法。您正在使用密钥加密某些内容,然后将该内容与密钥一起发送到服务器。当然,读取值会更加困难,可能会吓坏一些低级嗅探器,但它并不安全。是的

这样想吧。爱丽丝想给鲍勃寄一封情书,但爱丽丝不想让鲍勃以外的任何人读这封情书,所以她把它放在保险箱里。认为情书是安全的,她把它寄给鲍勃。但是她记得鲍勃不能打开保险箱,所以在同一个包裹里,她还把钥匙放在保险箱里

这里的问题是,邮局或任何其他有权接触包裹的人都可以打开保险箱。在这个类比中,Alice是客户端(web浏览器,javascript),网线是邮局,服务器是Bob

有几种方法可以使用javascript对其进行加密。例如:

如果您仍然希望在客户端加密数据(这样做没有坏处),我将避免将请求中的密钥发送回服务器。服务器将其发送到客户端就足够了。那么客户就不必把它寄回去了。相反,您可以存储在服务器端的会话中。这样,你至少可以让中间人的威胁小一点

但是在这个场景中,我将使用它来发送数据

HTTPS统一资源标识符(URI)方案具有相同的 标准HTTP方案的语法,除了其方案令牌。 但是,HTTPS向浏览器发出信号,要求使用添加的加密层 SSL/TLS用于保护流量。SSL/TLS特别适合HTTP 因为它可以提供一些保护,即使只有一侧的 通信是经过身份验证的。HTTP就是这样 Internet上的事务,通常只有服务器 已验证(由检查服务器证书的客户端验证)


有人可能会争辩说https,但它仍然是发送敏感数据的更好选择。

经过深思熟虑,我建议您可以这样做。让我们从其他人那里了解他们的想法

创建一个附加密钥。密码短语(可能是问答类的东西,母亲的名字或宠物的名字等),并将其用作加密或解密的密钥

因此,在记录时,用户将输入

  • 用户名
  • 密码
  • 预先录制的问题答案,存储在 服务器端已在注册过程中
  • 提交时

  • 使用预先录制的问题的答案加密密码
  • 当服务器端收到密码时,使用存储在服务器端(数据库)中的预记录问题的答案解密密码
  • 如果密码与允许或拒绝服务匹配

  • 这样,任何截获您登录服务器端请求的人都将没有要解密的密钥。正如smoksnes提到的,使用https实现额外的安全性

    经过深思熟虑,我建议您可以这样做。让我们从其他人那里了解他们的想法

    创建一个附加密钥。密码短语(可能是问答类的东西,母亲的名字或宠物的名字等),并将其用作加密或解密的密钥

    因此,在记录时,用户将输入

  • 用户名
  • 密码
  • 预先录制的问题答案,存储在 服务器
    <asp:TextBox runat="server" ID="txtData" ClientIDMode="Static"></asp:TextBox>
        <asp:HiddenField runat="server" ID="ClientKey" ClientIDMode="Static"/>
        <asp:Button runat="server" Text="Submit" OnClick="OnClick" OnClientClick="return EncryptData();"/>
    
    function EncryptData() {
            var plaintext = $('#txtData').val();
            var secret = $('#ClientKey').val();
            var encrypted;// Encrypt(plaintext, secret);
    
            $('#txtData').val(encrypted);
            return true;
        }
    
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                int key = new Random().Next();
                ServerKey = key;
                ClientKey.Value = key.ToString();
            }
        }
    protected void OnClick(object sender, EventArgs e)
        {
            // Decrypt(txtData.Text, ServerKey.ToString()));
        }