是可以通過Java來獲得從TDS的用戶密碼以明文的形式? 隨着ldapsearch -v -D cn=root -w xxxxxx -s sub uid=testuser userPassword
我得到以下結果:TDS - 收到的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: [email protected], uid=uid: testuser, userpassword;binary=userPassword;binary: [[email protected], pwdreset=pwdReset: true, cn=cn: xxxx, description=description: xxxxxx;xxxxxx;I;xxxxxx}
什麼是「二進制=的userPassword;二進制:[B @ 1a626f .. 。「意思是,我怎樣才能在這裏得到密碼?我必須對它進行編碼嗎?如果是的話,我該如何解決它?獲取其他操作屬性不成問題。
最好的問候!
如果LDAP服務器配置正確,則不需要。它應該散列密碼,這是一個單向過程。如果你還沒有配置你的服務器。參見[這裏](http://stackoverflow.com/questions/2283937/how-should-i-ethically-approach-user-password-storage-for-later-plaintext-retrie/2287672#2287672)爲什麼你應該。 – EJP
你的意思是,如果服務器配置正確,密碼不能被接收,或者如果配置正確,我可以嗎?是否可以通過「IBM Security Directory Server Web管理工具」進行配置? 因爲我真的需要提取密碼並再次將它們導入到另一個位置。 – InfoEngi
如果OpenLDAP服務器配置正確,則無法檢索純文本密碼。當你的問題涉及OpenLDAP時,我不知道你爲什麼要談論IBM Security Directory Server Web管理工具。 – EJP