Javascript在表单提交前加密密码

时间:2012-11-16 12:16:58

标签: c# javascript

有没有办法在javascript中进行双向加密?

4 个答案:

答案 0 :(得分:8)

  

我将普通密码文本存储在我的数据库中,而不是哈希值。

不要那样做。人们用他们的密码信任你。 protect them是您的责任。

  

我希望在发送到我的服务器之前加密密码,我的服务器可以使用C#将其解密回纯文本。有谁知道javascript加密适合我的情况?

无。适用于保护在浏览器和服务器之间传输的数据的唯一系统是SSL。使用HTTPS方案。

答案 1 :(得分:0)

我同意Quentin一样,以普通格式保存用户密码是个坏主意。

对于安全数据加密,您可以使用一些不对称加密算法,例如RSA。您的公钥将保存在javascript端,C#服务器将使用私钥来使用RSA解密收到的密文。

答案 2 :(得分:0)

如果您的服务器可以将密码解密为纯文本,那么这个邪恶的家伙也可以,

您应该以纯文本的形式将密码发送到服务器,然后将其转换为常规格式,如md5()sha1(),然后按原样将其存储在数据库中。

然后,当用户想要登录时,加密密码输入并将其与之前存储的密码输入进行比较。

如果您想保护从客户端到服务器的数据传输,您应该使用https来确保无法拦截数据。

祝你好运

答案 3 :(得分:-1)

在我个人看来,使用Javascript加密的最佳方法是使用SHA-1。不要使用MD5这是最糟糕的(太容易解密)。您可以使用此库:http://pajhome.org.uk/crypt/md5/sha1.html

并以这种方式使用它:

var encrypted_password = hex_sha512(plain_password);

Javascript的缺点是添加密码盐(http://en.wikipedia.org/wiki/Salt_(cryptography))是无能为力的,因为他们没有办法将它提供给浏览器而不允许每个人都获得任何人的盐(否则你无法加密)密码)。

由于这个特殊原因,最安全的仍然是使用HTTPS在服务器端进行加密,否则这个库将非常容易地完成工作。