c - 试图理解MD5算法

标签 c logic md5

我正在尝试使用 MD5 在 C 中做一些事情(后来尝试使用 SHA1 算法做一些事情)。我的主要问题是我从来没有真正用 C 做过任何复杂的事情,只是简单的事情(不像指向指针或结构的指针)。

I got the md5 algorithm here.

我在我的 C 项目中包含了文件 md5.cmd5.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/

相关文章:

c - 使用 appsink 提取样本信号

c - 管道和 fork 问题 - 管道中的某些输入未正确清除

c - 旋转链表 C

php - Woocommerce 使用 single-product.php 重定向的多个单一产品模板

javascript - CryptoJS MD5 不转换字数组,SHA256 工作正常

c# - 通过计算它们的 MD5 获取重复文件列表

c - 用户输入前 2 个数字的斐波那契数列

ruby-on-rails-3 - 使用 block 和条件轨查看逻辑

java - 奇数/偶数程序不打印任何内容

c++ - 为什么我的 MD5 值打印有额外的 "f"个字符?