【问题标题】:How to encrypt LDAP password using SHA-256如何使用 SHA-256 加密 LDAP 密码
【发布时间】:2017-03-02 07:43:17
【问题描述】:

我正在开发需要验证用户密码的 java web 应用程序

使用 LDAP 服务器我对此不太了解。我从应用程序服务器到 LDAP 的请求是

已经用证书文件加密,但我仍然需要使用 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

【问题讨论】:

  • 一般来说,我们希望您的 LDAP 服务器会加密密码。您只需要通过 SSL 以文本形式发送它。 (或使用 StartTLS)
  • 是的,但我说的是网络上流动的信息加密,我可以吗??就像这个链接正在使用 MD5 docs.oracle.com/javase/jndi/tutorial/ldap/security/digest.html
  • SHA-256 不是加密算法。您不需要自己对 LDAP 密码进行任何预处理。 LDAP 服务器会做任何必要的事情。您需要提供的只是安全的运输方式。不清楚你在问什么。

标签: java ldap sha


【解决方案1】:

通常,我们希望您的 LDAP 服务器会加密密码。您只需要通过 SSL 以文本形式发送它。 (或使用 StartTLS)

如果您使用的是 SSL,那么您就是加密的。否则,您将需要使用 SASL 之类的东西,这需要客户端和服务器的支持。

-吉姆

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2012-03-08
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    相关资源
    最近更新 更多