2010-10-29 47 views
1

我想从客户端和服务器端的加密密码,这意味着两次加密,我发现在谷歌浏览器的代码JavaScript md5,但我怎么用JSF呢? 在服务器端我可以做但是,但在客户端与JSF我怎么办?如何使用JSF加密

的JavaScript的md 5:http://phpjs.org/functions/md5:469

+0

“客户端与JSF”是什么意思?毕竟,JSF在服务器端。 – 2010-10-29 10:35:02

+0

我想他在问如何加密输入字段的内容。 – FRotthowe 2010-10-29 10:43:15

回答

6

MD5是单向加密。您无法将其解密回原始字符串。在视角方面做到这一点也没有意义。如果您使用数据库来存储数据,并且您的意图是在数据库中对密码进行哈希处理,那么请在数据库端执行此操作。有点像样的DB为此提供了功能。目前还不清楚您使用的是哪个数据库,但在MySQL等情况下,它简称为md5()

重写你的INSERT如下:

String sql = "INSERT INTO user (username, password) VALUES (?, md5(?))"; 

而且你SELECT如下:

String sql = "SELECT * FROM user WHERE username = ? AND password = md5(?)"; 

如果你唯一的功能要求是传输通过HTTP的数据(这是不明朗加密你的问题),然后看看HTTPS(使用SSL的HTTP)。这可以在Web服务器级别进行配置。再次,目前还不清楚你正在使用哪一个,但在例如Tomcat的情况下,你可以在this documentation中找到细节。

+0

谢谢BalusC! – Kency 2010-10-29 16:33:01

1

请 - 不这样做你自己。使用SSL。这在大多数应用程序服务器和servlet容器中设置应该不会太复杂。

+0

谢谢你FRotthowe! – Kency 2010-10-29 16:40:06

1

不清楚用md5散列密码的动机是什么;如果要阻止某人拦截流量来使用密码,那么这种方法将无济于事:攻击者可以直接发送哈希密码,因为原始密码的知识不再必要。

如果您想在不传输密码的情况下使用此身份验证,请使用基于挑战 - 响应通信的摘要式身份验证。

+0

谢谢Martin! – Kency 2010-10-29 16:34:34