C++ HMAC-SHA 类实现





3.00/5 (12投票s)
C++ HMAC-SHA1 类
引言
这是我在 CodeProject 上的第一篇文章。抱歉我的英语不好。
我认为分享这个 HMAC-SHA1
类的理由是,我没有找到相关的可以参考的源代码。这是一个简单的 C++ HMAC-SHA1
类,仅支持单字节字符。如果需要,您可以添加双字节字符支持。您会发现这个类只包含一个函数 HMAC_SHA1
,它接受测试输入和哈希密钥,然后生成摘要。
背景
感谢 Dominik Reichl,我封装的 SHA1 类来自他令人惊叹的类。我只是在其基础上实现了 HMAC 算法。对于 MD5,您可以参考 RFC。其中包含详细的编程流程。
Using the Code
这个类的用法非常简单。声明 CHMAC_SHA1
,调用它的 HMAC_SHA1
函数。就完成了!
您可以使用 RFC 2202 测试用例中的 HMAC-SHA1
来验证您的实现。
以下是 RFC 2202 中的测试用例 1。
#include "HMAC_SHA1.h"
BYTE Key[20] ;
BYTE digest[20] ;
unsigned char *test = "Hi There" ;
memset(Key, 0x0b, 20) ;
CHMAC_SHA1 HMAC_SHA1 ;
HMAC_SHA1.HMAC_SHA1(test, strlen(test), Key, sizeof(Key), digest) ;
// Check with digest equal to 0xb617318655057264e28bc0b6fb378c8ef146be00
// or not
历史
- 2007/12/17:更新示例代码,包含 RFC 2202 测试用例 1