我正在尝试使用MD5在C中做一些事情(后者试图用SHA1算法做一些事情).我的主要问题是我从来没有在C中做过任何复杂的事情,只是简单的东西(没有像指针或结构的指针).
我包含了文件md5.c和md5.h我的C项目(使用代码块),但唯一的问题是我真的不明白如何使用它.我已阅读并重新阅读代码,但我不明白如何使用这些函数将"示例"转换为MD5哈希.
我有一段时间没有做过C编程(主要是php),所以我在这里有点迷失.基本上我要问的是一些使用示例.它们是通过md5main.c文件提供的,但我不理解它们.
我在这里瞄准了吗?我应该停止所有这一切并再次开始阅读C书,或者任何人都可以给我一些指示,看看我是否能解决这个问题.
谢谢.
你应该停止这一切并再次开始阅读C书.
我的经验是,当我尝试学习一种新的编程语言时,尝试同时实现一个复杂的项目是不切实际的.您应该在C中进行简单的练习,直到您熟悉该语言,然后解决诸如实施MD5或集成现有实现之类的问题.
顺便说一句,阅读代码是一种与编写代码不同的技能.这两种技能之间存在差异,但两者都需要您很好地理解语言.
虽然我同意比尔的意见,但如果你想真正理解你在做什么,你应该回到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
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!