本文整理汇总了Java中org.alfresco.jlan.server.auth.ntlm.Type3NTLMMessage.getNTLMHash方法的典型用法代码示例。如果您正苦于以下问题:Java Type3NTLMMessage.getNTLMHash方法的具体用法?Java Type3NTLMMessage.getNTLMHash怎么用?Java Type3NTLMMessage.getNTLMHash使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.alfresco.jlan.server.auth.ntlm.Type3NTLMMessage
的用法示例。
在下文中一共展示了Type3NTLMMessage.getNTLMHash方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: checkNTLMv1
import org.alfresco.jlan.server.auth.ntlm.Type3NTLMMessage; //导入方法依赖的package包/类
/**
* Perform an NTLMv1 hashed password check
*
* @param md4hash String
* @param challenge byte[]
* @param type3Msg Type3NTLMMessage
* @param checkLMHash boolean
* @return boolean
*/
protected final boolean checkNTLMv1(String md4hash, byte[] challenge, Type3NTLMMessage type3Msg, boolean checkLMHash)
{
if (getLogger().isDebugEnabled())
getLogger().debug(("Perform an NTLMv1 hashed password check."));
// Generate the local encrypted password using the challenge that was sent to the client
byte[] p21 = new byte[21];
byte[] md4byts = m_md4Encoder.decodeHash(md4hash);
System.arraycopy(md4byts, 0, p21, 0, 16);
// Generate the local hash of the password using the same challenge
byte[] localHash = null;
try
{
localHash = m_encryptor.doNTLM1Encryption(p21, challenge);
}
catch (NoSuchAlgorithmException ex)
{
}
// Validate the password
byte[] clientHash = checkLMHash ? type3Msg.getLMHash() : type3Msg.getNTLMHash();
if (clientHash != null && localHash != null && clientHash.length == localHash.length)
{
int i = 0;
while (i < clientHash.length && clientHash[i] == localHash[i])
{
i++;
}
if (i == clientHash.length)
{
if (getLogger().isDebugEnabled())
getLogger().debug(("Hashed passwords match."));
return true;
}
}
if (getLogger().isDebugEnabled())
getLogger().debug(("Hashed passwords do not match."));
return false;
}