0

我需要实现一个哈希函数,该函数产生一个 32 位(足够唯一)值,以便在发送消息时用作消息标识符。我维护一个序列号,并与其他一些变量一起不断增加它,并将它们相加,并希望得到总数的哈希值(我计划为此使用 MD5,然后选择输出的前 32 位)。但是我看到Linux中的MD5函数只接受字符串输入,

MD5((unsigned char*)data, strlen(data), result);

我曾想过冲刺'total'然后计算哈希,但想知道是否有一些函数可以直接计算'total'的数值的MD5?

4

1 回答 1

2

unsigned char *不暗示一个字符串,或一个以空字符结尾的字符串。至少在这种情况下不是。它只是一个指向 N 个 8 位字的指针,没有任何值限制。因此,您不必snprintf为了将数据转换为 ASCII 字符串而拥有任何类似的东西。如果有帮助,这里md5sum工具的来源。

于 2012-10-13T23:34:52.510 回答