Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
加密和散列AJAX调用,以便与两台服务器通信_Ajax_Asp.net Mvc_Encryption - Fatal编程技术网

加密和散列AJAX调用,以便与两台服务器通信

加密和散列AJAX调用,以便与两台服务器通信,ajax,asp.net-mvc,encryption,Ajax,Asp.net Mvc,Encryption,我创建了两个示例应用程序 ASP.NET WEB API及其应用 ASP.NETMVC应用程序 我的一些MVC应用程序屏幕通过AJAX调用访问WEB API,我成功地实现了这一点 现在我想实现Hasing/Encryption而不使用 HTTPS 我的问题是为了实现Hasing/加密 对于AJAX调用,我需要 首先对MVC方法进行AJAX调用。 加密/散列JSON, 将其返回到浏览器 然后使用加密/哈希JSON对WEB API进行AJAX调用 这种方法正确吗 客户端是否应该能够解密从MVC方法返

我创建了两个示例应用程序

ASP.NET WEB API及其应用 ASP.NETMVC应用程序 我的一些MVC应用程序屏幕通过AJAX调用访问WEB API,我成功地实现了这一点

现在我想实现Hasing/Encryption而不使用 HTTPS

我的问题是为了实现Hasing/加密 对于AJAX调用,我需要

首先对MVC方法进行AJAX调用。 加密/散列JSON, 将其返回到浏览器 然后使用加密/哈希JSON对WEB API进行AJAX调用
这种方法正确吗

客户端是否应该能够解密从MVC方法返回的数据

不 如果没有,那么您可以在MVC和Web API中使用相同的预共享密钥,并且您的方法将相对安全。您需要使用HMAC而不是简单的哈希来验证数据的真实性。使用第二个不同的键作为HMAC键

在加密数据上运行HMAC,然后使用第二个密钥加密MAC,并将其与密文一起发送。当Web API收到密文和MAC时,它应该首先验证MAC,然后再尝试解密

对 为了使这至少有一点安全,您需要对对称密钥的密钥交换使用非对称加密

准备:生成两个RSA或其他密钥对。一个用于MVC端点,另一个用于Web API。将私钥移动到服务器端点,并将编码形式的公钥添加到客户端页面

客户端:生成AES密钥,用MVC公钥加密并发送给MVC MVC:使用其RSA私钥解密加密的AES,使用恢复的AES密钥加密数据并将其返回给客户端 客户端:使用AES密钥解密数据并使用它做一些事情 客户端:使用AES密钥加密部分数据,使用Web API的公钥加密AES密钥,并将两个密文发送到Web API Web API:使用其私钥解密加密的AES密钥,使用AES密钥解密数据,对数据执行某些操作,并返回一些可能使用AES加密的结果
为了使其更加健壮,您可以生成两个对称密钥,一个用于加密,另一个用于HMAC,以便对对称密文进行身份验证。

我想在不使用HTTPS的情况下实现Hasing/encryption。我希望您知道,这无法确保对中间人攻击的安全性。此外,散列和加密是两件完全不同的事情。你的意思是散列、加密还是两者兼而有之?您发送的是什么样的数据?您希望保护哪些数据?Artjom B@1。希望同时实现Hasing和Encryption 2。是的,我知道第1步并不能防止中间人攻击,但我关心的是从MVC到WebAPI的AJAX调用。3.这是JSON数据,我将不采用任何方法,这将解决我的目的,谢谢。