我正在尝试使用 MD5 在 C 中做一些事情(后来尝试使用 SHA1 算法做一些事情)。我的主要问题是我从来没有真正用 C 做过任何复杂的事情,只是简单的事情(不像指向指针或结构的指针)。
我在我的 C 项目中包含了文件 md5.c
和 md5.h
(使用代码块),但唯一的问题是我不太明白如何用它。我已经阅读并重新阅读了代码,但我不明白如何使用这些函数将“示例”转换为 MD5 哈希。
我有一段时间没有进行 C 编程(主要是 php),所以我在这里有点迷路。
基本上我要问的是一些使用示例。它们是通过 md5main.c
文件提供的,但我不理解它们。
我的目标高吗?我应该停止所有这一切并重新开始阅读 C 书,还是任何人都可以给我一些指示,看看我是否能解决这个问题。
谢谢。
最佳答案
虽然我同意 Bill 的观点,但如果您想真正了解自己在做什么,则应该回到 C 书。但是,为了提供帮助,我修改并注释了 md5main.c 中的一些代码...
const char* testData = "12345"; // this is the data you want to hash
md5_state_t state; // this is a state object used by the MD5 lib to do "stuff"
// just treat it as a black box
md5_byte_t digest[16]; // this is where the MD5 hash will go
// initialize the state structure
md5_init(&state);
// add data to the hasher
md5_append(&state, (const md5_byte_t *)testData, strlen(testData));
// now compute the hash
md5_finish(&state, digest);
// digest will now contain a MD5 hash of the testData input
希望这对您有所帮助!
关于c - 试图理解MD5算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/742096/