使用openSSL的HMAC-MD5

使用openSSL的HMAC-MD5,c,openssl,md5,ntlm,hmac,C,Openssl,Md5,Ntlm,Hmac,我正试图研究NTLMv2的反应,。 但卡在HMAC-MD5段。(使用类函数) 我得到了正确的NTLM哈希,以及unicode用户名和域。 (他只强调“USERDOMAIN”而不强调用户名,所以我猜是“USER”) 但结果是: v2hash(16): 23 d2 3c a4 dd 1a 20 81 35 cf 3a 42 1c e1 5a 17 应为“0x04b8e0ba74289cc540826bab1dee63ae” 我做错什么了吗?我不是C程序员,但 从我对那篇文章的阅读来看,USERDO

我正试图研究NTLMv2的反应,。
但卡在HMAC-MD5段。(使用类函数)

我得到了正确的NTLM哈希,以及unicode用户名和域。
(他只强调“USERDOMAIN”而不强调用户名,所以我猜是“USER”)

但结果是:

v2hash(16): 23 d2 3c a4 dd 1a 20 81 35 cf 3a 42 1c e1 5a 17
应为“0x04b8e0ba74289cc540826bab1dee63ae”


我做错什么了吗?

我不是C程序员,但

从我对那篇文章的阅读来看,USERDOMAIN应该是-而不是USER+USERDOMAIN,即大写的username=“USER”concat和target=“DOMAIN”来表示USERDOMAIN,它表示从55005300开始的unicode字节

然后,您的udata数组似乎大小不正确。您只处理20个字节的信息,因此不要将数组设置为28,否则HMAC/MD5函数将在输入数组的末尾处理额外的随机数据

v2hash(16): 23 d2 3c a4 dd 1a 20 81 35 cf 3a 42 1c e1 5a 17