我想在JQuery中加密密码并在servlet中解密它。请告诉我应该使用哪种算法以及如何实现这一功能。
答案 0 :(得分:4)
您想使用HMAC。
基本上,您向客户发送2种盐。您存储在数据库中
md5(salt + pwd)
向最终用户发送一个唯一的salt2和db salt,返回
md5(salt2 + md5(salt + pwd))
然后你比较同一个操作服务器端。
只要你改变所发送的盐并且不接受旧的盐,它就像你没有SSL那样安全。你绝对不想尝试使用类似的AES或RSA。
如果您不喜欢md5,请使用您选择的任何其他哈希算法。
答案 1 :(得分:1)
答案 2 :(得分:0)
谷歌搜索的一个简单位置会让你answer。可用的算法似乎是Blowfish,SHA和Rc4。如果你想解密河豚将是你要走的路。对于较小的数据集,您可以使用rc4。
以实际例子来看看雅虎如何做logins。登录表单有一个隐藏字段,作为名为“.challenge”的盐,它嵌入在哈希中,如下所示:
fullhash=MD5(MD5(passwd)+challenge)
答案 3 :(得分:0)
这是一个典型的加密问题。由whatnick描述的单向哈希将起作用,但存在安全问题。值得注意的是,攻击者可以执行重放攻击,因为哈希不能被腌制,这意味着用户只能发送与数据库中存储的哈希相对应的一个哈希值。换句话说,这与以纯文本发送密码几乎相同。
正确执行此操作的唯一方法是使用非对称公钥密码,例如RSA。我见过Javascript implementation here。我认为这比必要的更复杂,从长远来看,通过SSL进行安全登录很可能是最安全和最简单的事情。