2011-05-05 76 views
2

我有一个Ldap目录从Microsoft Active Directory同步。Java - > LDAP帐户密码加密

这个Ldap包含很多账号,每个账号都有一个密码属性。

我必须开发一个Java程序,用户必须使用他的AD登录名和密码登录,但我不知道用于正确加密输入密码的方法。

我需要它与ldap密码进行比较。

我还需要使用相同的密码加密绑定新帐户。

任何人都知道该怎么办?

+0

为什么你需要加密密码?如果你的java程序使用LDAP来验证用户,你可以使用bind()api来验证凭证。 – 2011-05-05 09:53:48

+1

我已经连接到LDAP目录,现在我想在ldap上创建新帐户(这已完成),用户可以选择他的密码。我的问题是如何加密密码? – FAjir 2011-05-11 09:11:22

回答

1

我发现带弹簧的解决方案,

这里的方法开始测试登录/通夫妇:

AndFilter filter = new AndFilter(); 
filter.and(new EqualsFilter("objectclass", "person")).and(new EqualsFilter("cn", login)); 
boolean authentifie = ldapTemplate.authenticate(DistinguishedName.EMPTY_PATH, filter.toString(), password); 
1

首先,您可以使用带有SSL的BIND,但这被认为是一种跛脚的方式,可能会在某些系统上被禁用。一个真正安全的方式是使用SPNEGO-GSS,这不是微不足道的。你必须学习和了解Kerberos。这是一个很长的话题,但你可以用reading and going through everything here