小编Pig*_*aax的帖子

在C中返回错误的MD5哈希

我正在尝试使用原始/未触摸的md5.h和来自http://www.arp.harvard.edu的md5c.c为字符串"Hello World"生成MD5哈希.但是我的结果与我测试的所有md5在线工具不同.这段代码怎么了?谢谢.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "md5.h"

void MD5hash(unsigned char *data, unsigned int dataLen, unsigned char *digest) {
    MD5_CTX c;
    MD5Init(&c);
    MD5Update(&c, data, dataLen);
    MD5Final(digest, &c);
}

int main(int argc, const char * argv[]) {
    unsigned char digest[16];
    const char *s = "Hello World";
    unsigned int l = (unsigned int)strlen(s);

    MD5hash((unsigned char *)s, l, digest);
    for(int i = 0; i < 16; ++i)
         printf("%02x", digest[i]);
    return 0;
}

// My result: f2877a72c40494318c4b050bb436c582 …
Run Code Online (Sandbox Code Playgroud)

c string hash md5

6
推荐指数
2
解决办法
1434
查看次数

标签 统计

c ×1

hash ×1

md5 ×1

string ×1