我正在尝试生成Hmac-sha1的一小段代码。我被要求使用用于SHA1计算的OpenSSL库自己编码hmac实现。 后“wiki'ing的算法,这里是我有什么below.I已经使用的输入与RFC 2246规定的测试值:在C中执行hmac sha1
Count Hexadecimal HMAC-SHA-1(secret, count)
0 cc93cf18508d94934c64b65d8ba7667fb7cde4b0
1 75a48a19d4cbe100644e8ac1397eea747a2d33ab
2 0bacb7fa082fef30782211938bc1c5e70416ff44
3 66c28227d03a2d5529262ff016a1e6ef76557ece
4 a904c900a64b35909874b33e61c5938a8e15ed1c
5 a37e783d7b7233c083d4f62926c7a25f238d0316
6 bc9cd28561042c83f219324d3c607256c03272ae
7 a4fb960c0bc06e1eabb804e5b397cdc4b45596fa
8 1b3c89f65e6c9e883012052823443f048b4332db
9 1637409809a679dc698207310c8c7fc07290d9e5
随着下面的代码,我用从RFC2104例如做,我根据需要获取COUNTER = 0的值,但当COUNTER值设置为其他值(如上面的2,3等)时,HMAC SHA1不符合RFC 2246中的上述值。另一个问题是如果我使用memcpy和memset bzero或bcopy,代码显示不符合COUNTER = 0值的不同(错误)Hmac Sha1值。请解释为什么这个奇怪的怪物?