使用jquery加密用户密码并使用C#解密

时间:2010-09-07 11:34:22

标签: c# asp.net jquery

  • 我不想使用SSL来加密我正在构建的网站的注册和登录表单。
    • 我没有钱支付证书。
    • 我需要在我的asp.net网站上使用jquery和C#解密enryption。

有人有一个例子,采用这种方法有什么安全吗?

7 个答案:

答案 0 :(得分:15)

如果你没有使用SSL,那么你就不安全了,但这不是唯一的原因。

SSL保护实际通信,而加密保护您正在通信的数据。你根本不应该加密密码。您应该对信息进行强化哈希hash是单向函数(不能反转),而encryption是双向函数(可以反转)。哈希强化和使用包括:

  • 迭代为速度构建的哈希,例如SHA512几千次或使用BCrypt之类的内容。
  • 使用salt - 存储在数据库中的类似于每位用户的64位数组混乱的东西
  • 使用应用程序层中的密钥加密数据库中的密钥和盐 - 这意味着如果采用数据库,他们仍然需要来自应用程序层的密钥才能访问原始哈希信息以及盐。

您必须记住安全性是按层构建的。通过跳过SSL,您正在跳过大部分内容。至少您可以使用makecertcreate a self-signed certificate。所有将要发生的事情是用户将被警告。一个好的SSL证书在GoDaddy上的成本可低至12.99美元。我推荐一个以及实现上述内容。

答案 1 :(得分:6)

您可以在不支付证书的情况下执行SSL,并且此方法可以确保您只有浏览器获取有关您的证书的信息不合格。

了解此http://www.akadia.com/services/ssh_test_certificate.html

答案 2 :(得分:3)

它可能根本不安全。 SSL真的是要走的路;如果你买不起证书,你可以随时自己做。显然,这些不会验证一个受信任的root权限,但它们同样安全 - 您的网站的身份将不会被受信任的第三方确认,但连接本身也将被安全加密。

答案 3 :(得分:0)

通过不使用SSL,您可以打开代码来进行网络嗅探攻击。在客户端加密也不会有任何好处。

不幸的是,没有获得有效的证书就没有安全的方法。这种方法是不安全的。

答案 4 :(得分:0)

我同意其他人的安全问题,如果你以这种方式做皮革,那么你可能会尝试使用自定义PKI界面。您将不得不更深入地研究完成此任务所需的代码,但这里有一个描述公钥结构的链接:

Public Key Cryptography

因此,如果您设法在jquery中编写公钥RSA算法,那么您应该毫不费力地在C#中匹配其私钥解密。这不是一个推荐,因为这实际上只是“通过混淆的安全性”(根本不是安全性)。

答案 5 :(得分:0)

您可以使用Javascript加密表单数据。可以这样做,请参阅http://www.movable-type.co.uk/scripts/aes.html。如果数据是使用密钥加密的,那么您必须将该密钥存储在javascript代码中以及服务器端代码中。由于javascript代码将是客户端,密钥将是公共的,这根本不安全:)。这同样对非对称加密也有效。可以使用相同的密钥加密不同的数据并将其发送到服务器。

SSL旨在使用公钥密码术和对称加密技术来克服Web上的安全问题。中间人的袭击被阻止了。使用SSL,您可以确保您的数据是安全的,而不是通过这种方式进行更改,并且有第三方证书颁发机构,声称您是您声称的那个人。

如果您说我可以将密钥或加密代码放在applet或active-x或flash swf对象中并使用模糊处理来保护代码,那么这可能是一种方法。但是这种方法再次受到攻击并且不安全。混淆不能保证您的密钥或算法是安全的,只是加强了破解者的工作以获得密钥。

我希望有所帮助。

答案 6 :(得分:0)

您可以使用HMAC进行身份验证。这不会提供隐私,但是嗅探器(查看网络流量的人)将无法获取密码,也无法登录模拟真实用户。当我不提供隐私时,我的意思是嗅探器将看到所有传输的内容而不是密码。

SSL当然非常安全,但对许多应用来说都是过度杀伤力。