【问题标题】:ASP.NET form's data encryption without SSL没有 SSL 的 ASP.NET 表单的数据加密
【发布时间】:2011-04-04 07:48:39
【问题描述】:
通常,如果我填写表格,数据将作为原始纯文本发送到服务器,供嗅探器读取。
我想在客户端加密表单的数据(如用户名、密码等),然后将它们发送到服务器。
好像有两种方法:
1- 使用 SSL(在我的场景中,我不能使用)
2- 使用自定义 ActiveX 控件。
3- 使用服务器端动态javascript加密功能。
哪个更好或任何其他解决方案?
【问题讨论】:
标签:
javascript
asp.net
encryption
ssl
activex
【解决方案1】:
服务器端加密不起作用,因为它不能解决问题(明文数据从客户端传输到服务器)。您需要的是非对称加密算法的 javascript 实现。类似 RSA 的东西。服务器可以向客户端提供公钥,用于在发送表单数据之前对其进行加密,然后在收到数据后使用私钥对数据进行解密。
【解决方案2】:
如果您不能使用 SSL,这是恕我直言的唯一明智选择,您必须使用带有 javascript 的客户端公钥加密,因为对称加密需要通过不安全的通道进行密钥交换,这会破坏目的。
我自己没有尝试过,但我发现this library 用于在 javascript 中进行 RSA 加密。