2016-10-20 10 views
-1

我在Java Web應用程序的工作,我需要使用LDAP服務器我是沒有太多的瞭解與應用服務器this.My請求LDAP是驗證用戶的密碼如何使用加密的LDAP口令SHA-256

已用證書文件加密,但我仍然需要使用SHA-256加密密碼。

我該怎麼辦?

我的Java代碼是:

  Hashtable<String,String> env = new Hashtable<String,String>(); 
      env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); 
      env.put(Context.PROVIDER_URL,"ldaps://" + ldap_url); 
      env.put(Context.SECURITY_AUTHENTICATION, auth_method); 
      env.put(Context.SECURITY_PRINCIPAL, "abcd123"+"@"+ldap_domain); 
      env.put(Context.SECURITY_CREDENTIALS, "mypassword"); 
      env.put(Context.SECURITY_PROTOCOL,"ssl"); 

      System.setProperty("javax.net.ssl.keyStore", keystorePath); 
      System.setProperty("javax.net.ssl.keyStorePassword", "changeit"); 
      ctx = new InitialDirContext(env); 

我得到這個this但無法與SHA-256

+0

通常,我們希望您的LDAP服務器將加密密碼。你只需要通過SSL發送文本。 (或使用StartTLS) – jwilleke

+0

是的,但我在談論網絡上流動的信息加密,我可以嗎?像這個鏈接正在使用MD5 http://docs.oracle.com/javase/jndi/tutorial/ldap/security/digest.html –

+0

SHA-256不是一種加密算法。您不需要自己對LDAP密碼進行任何預處理。 LDAP服務器將執行任何必要的操作。所有你需要提供的是一個安全的運輸。不清楚你在問什麼。 – EJP

回答

0

通常做的,我們希望您的LDAP服務器將密碼加密。你只需要通過SSL發送文本。 (或使用StartTLS)

如果您使用的是SSL,那麼您將被加密。否則,您將需要使用類似SASL這需要在客戶端和服務器上的支持。

-jim