有没有办法在javascript中进行双向加密?
4 回答
我将纯密码文本存储在我的数据库中,而不是哈希值。
不要那样做。人们用他们的密码信任你。保护它们是您的责任。
我希望在发送到我的服务器之前加密密码,我的服务器可以使用 C# 将其解密回纯文本。任何人都知道哪种javascript加密适合我的情况?
没有任何。唯一适合保护在浏览器和服务器之间传输的数据的系统是 SSL。使用 HTTPS 方案。
我同意 Quentin 的观点,即以纯格式保存用户密码是个坏主意。
为了安全的数据加密,您可以使用一些非对称加密算法,例如 RSA。您的公钥将保存在 javascript 端,C# 服务器将拥有私钥来使用 RSA 解密收到的密文。
如果您的服务器可以将密码解密为纯文本,那么邪恶的人也可以,
您应该将密码以纯文本形式发送到服务器,然后将其转换为常规格式,md5()
或者sha1()
将其按原样存储在数据库中。
然后当用户想要登录时,加密输入的密码并将其与您之前存储的密码进行比较。
如果你想保护从客户端到服务器的数据传输,你应该使用 https 来确保数据不会被截获。
祝你好运
在我个人看来,使用 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 进行加密,否则这个库将很容易完成这项工作。