【发布时间】:2014-08-25 20:59:15
【问题描述】:
我正在尝试追踪这个开源程序 mhash 是如何计算它的散列的
我可以使用以下命令成功运行程序:
gcc -o 示例 example.c -lmhash
(另外,mhash 当前已安装,我正在运行 Ubuntu Linux)
Mhash 可以在这里找到:http://mhash.sourceforge.net/
我试过的例子在这里:
#include <mhash.h>
#include <stdio.h>
int main()
{
char password[] = "Jefe";
int keylen = 4;
char data[] = "what do ya want for nothing?";
int datalen = 28;
MHASH td;
unsigned char *mac;
int j;
td = mhash_hmac_init(MHASH_MD5, password, keylen,
mhash_get_hash_pblock(MHASH_MD5));
mhash(td, data, datalen);
mac = mhash_hmac_end(td);
/*
* The output should be 0x750c783e6ab0b503eaa86e310a5db738
* according to RFC 2104.
*/
printf("0x");
for (j = 0; j < mhash_get_block_size(MHASH_MD5); j++) {
printf("%.2x", mac[j]);
}
printf("\n");
exit(0);
}
我已经阅读了API,它有很好的文档,但是文件太多,我不知道它从哪些方面继承了它的算法?
提前感谢您的时间和帮助
【问题讨论】: