【发布时间】:2017-02-04 20:59:12
【问题描述】:
是否可以通过 java 从 ClearText 中的 TDS 获取用户密码?
与ldapsearch -v -D cn=root -w xxxxxx -s sub uid=testuser userPassword
我得到以下结果:
这种情况下的密码是:Joko2014!
在 Java 中我尝试过:
String[] attrIDs = {".....",....,"userPassword"}
SearchControls ctls = new SearchControls();
ctls.setReturningAttributes(attrIDs);
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> results = ctx.search(name,
filter, ctls);
while (results.hasMore()) {
SearchResult entry = results.next();
System.out.println(entry);
}
但控制台中的输出只是:
uid=testuser: null:null:{givenname=givenName: xxxx, sn=sn: xxx, pwdchangedtime=pwdChangedTime: 20160926173016.000000Z, mail=mail: xxxxxx@xx.xxx.com, uid=uid: testuser, userpassword;binary=userPassword;binary: [B@1a626f, pwdreset=pwdReset: true, cn=cn: xxxx, description=description: xxxxxx;xxxxxx;I;xxxxxx}
“binary=userPassword;binary:[B@1a626f...”是什么意思,我如何在这里获取密码?我必须对其进行编码吗?如果是,我该如何解决? 获取其他操作属性没问题。
最好的问候!
【问题讨论】:
-
如果 LDAP 服务器配置正确,则不会。它应该对密码进行哈希处理,这是一个单向过程。如果你还没有配置你的服务器。请参阅 here 了解您应该这样做的原因。
-
您的意思是,如果服务器配置正确,则无法接收密码,或者如果配置正确,我可以?是否可以通过“IBM Security Directory Server Web Administration Tool”进行配置?因为我真的需要提取密码并再次将它们导入另一个位置。
-
如果 OpenLDAP 服务器配置正确,您将无法检索明文密码。当您的问题是关于 OpenLDAP 时,我不知道您为什么要谈论 IBM Security Directory Server Web Administration Tool。
-
嗯,它不是 OpenLdap - 服务器,而是 TDS - 服务器。我正在使用“IBM Security Directory Server Web Administration Tool”作为 GUI。但是对于搜索或修改,我使用的是来自 openldap 的 ldapsearch 或 ldapmodify。
-
那么为什么你的问题的标题和标签都是 OpenLDAP? 为什么你没有在问题中提到实际的服务器?和标签?