题
我试图做一些用C与MD5(和后者试图做一些与SHA1算法)。我的主要问题是,我从来没有真的用C任何复杂,只是简单的东西(没有像指针的指针或结构)。
我包括在该文件md5.c
和在我的C项目md5.h
(使用代码块),但唯一的问题是,我真的不知道如何使用它。我已经阅读并重新读取代码和我不理解如何使用这些功能以打开“示例”到MD5哈希值。
我没有做过C编程在一段时间(主要是PHP的),所以我在这里有点失落。
基本上我所要求的是一些用法示例。它们通过md5main.c
文件中提供的,但我不理解他们。
我是不是瞄准高吗?我应该停止这一切,重新开始读的C本书或任何人都可以给我一些指点,看看我能想出解决办法。
感谢。
解决方案
虽然我与比尔同意,你应该回去到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书。
我的经验是,当我努力学习新的编程语言,它不是实际尝试实现在同一时间一个复杂的工程。你应该做简单的练习,在C,直到您熟悉的语言,然后解决类似实现MD5或整合现有的实现。
顺便说一下,读取代码是从编写程序不同的技能。有这两个技能之间的差异,但它们都需要你理解的语言很好。
我觉得你选对最糟糕的事情来看待(由无过错你自己的)。加密和散列算法类型将要做出的最奇怪的使用的语言可能做数学的,他们需要尽快做的类型。他们几乎肯定会被模糊,不易理解。另外,你需要为了得到深陷数学真正理解他们。
如果你只是想要一个散列算法,得到一个众所周知的实施和使用它作为一个黑盒子。不要试图实现它自己,你几乎肯定会带来一些加密的弱点进入实施。
编辑:是,如果你想在加密伟大的书籍(或资源)充分响应,看看布鲁斯。 应用密码学是一个典型。