-4

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

4

4 回答 4

9

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

不要那样做。人们用他们的密码信任你。保护它们是您的责任。

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

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

于 2012-11-16T12:19:20.000 回答
0

我同意 Quentin 的观点,即以纯格式保存用户密码是个坏主意。

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

于 2012-11-16T12:23:02.803 回答
0

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

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

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

如果你想保护从客户端到服务器的数据传输,你应该使用 https 来确保数据不会被截获。

祝你好运

于 2012-11-16T12:23:08.903 回答
-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 进行加密,否则这个库将很容易完成这项工作。

于 2012-11-16T12:51:45.823 回答