加密密码

时间:2009-10-12 07:27:19

标签: jquery encryption

我想在JQuery中加密密码并在servlet中解密它。请告诉我应该使用哪种算法以及如何实现这一功能。

4 个答案:

答案 0 :(得分:4)

您想使用HMAC。

基本上,您向客户发送2种盐。您存储在数据库中

md5(salt + pwd)

向最终用户发送一个唯一的salt2和db salt,返回

md5(salt2 + md5(salt + pwd))

然后你比较同一个操作服务器端。

只要你改变所发送的盐并且不接受旧的盐,它就像你没有SSL那样安全。你绝对不想尝试使用类似的AES或RSA。

如果您不喜欢md5,请使用您选择的任何其他哈希算法。

答案 1 :(得分:1)

就如何实现它而言,自问题出现以来,事情已经发生了变化,看起来CryptoJS应该让它变得简单:

http://code.google.com/p/crypto-js/

注意 - 我还没用过它!

答案 2 :(得分:0)

谷歌搜索的一个简单位置会让你answer。可用的算法似乎是Blowfish,SHA和Rc4。如果你想解密河豚将是你要走的路。对于较小的数据集,您可以使用rc4。

以实际例子来看看雅虎如何做logins。登录表单有一个隐藏字段,作为名为“.challenge”的盐,它嵌入在哈希中,如下所示:      fullhash=MD5(MD5(passwd)+challenge)

答案 3 :(得分:0)

这是一个典型的加密问题。由whatnick描述的单向哈希将起作用,但存在安全问题。值得注意的是,攻击者可以执行重放攻击,因为哈希不能被腌制,这意味着用户只能发送与数据库中存储的哈希相对应的一个哈希值。换句话说,这与以纯文本发送密码几乎相同。

正确执行此操作的唯一方法是使用非对称公钥密码,例如RSA。我见过Javascript implementation here。我认为这比必要的更复杂,从长远来看,通过SSL进行安全登录很可能是最安全和最简单的事情。