⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntlmlib.h

📁 Windows的NTLM认证方式的加密和解密库(含例子程序)。
💻 H
字号:
#ifndef NTLM_LIB_HEADER
#define NTLM_LIB_HEADER

typedef BYTE CODE[8];

typedef BYTE MD4[16];

typedef struct
{
	CODE code[2];
} LMHASH, * LPLMHASH;
typedef const LMHASH * LPCLMHASH;

typedef struct
{
	MD4 code;
} NTLMHASH, * LPNTLMHASH;
typedef const NTLMHASH * LPCNTLMHASH;

typedef enum{LMAuth=0,NTLMAuth} AuthMode;

typedef BYTE RESPONSE[24];	//24字节的响应字符串;

typedef const BYTE * LPCBYTE;

//将7字节的明文lpSrc转换成8字节的散列密文;
BOOL StringToKey(LPCSTR lpSrc,LPSTR lpKey);

//转换lpStr字符串中的内容到LMHASH结构中去;
BOOL StringToLMHash(LPLMHASH lpHash,LPCSTR lpStr);

//将长度是len的原文lpSrc用MD4算法加密成16字节的密文ret返回;
void md4(MD4 ret,LPCBYTE lpSrc,int len);

//转换lpStr字符串中的内容到NTLMHASH结构中去;
BOOL StringToNTLMHash(LPNTLMHASH lpHash,LPCSTR lpStr);

//对密码szPwd用服务器给定的钥匙challenge得到回应串ret;AuthMode是验证类型,可以是NTLMAuth或LMAuth;
BOOL LMAuthen(RESPONSE ret,LPCSTR szPwd,CODE challenge,AuthMode);

//将16进制数据lpCode按可见方式输出到szHex缓冲中,形成可输出字符串;szHex至少可容纳len*2+1个字符;
void CodeToHex(LPSTR szHex,LPCBYTE lpCode,int len);

//将可见的16进制字符串转换成数据形式,len是lpCode的最大缓冲长度,返回实际转换的字节数;
int HexToCode(LPBYTE lpCode,int len,LPCSTR szHex);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -