微控制器的MD5实现


Answers:


11

如果要查找C实现,则Microchip TCP / IP堆栈在Hashes.c文件中具有MD5的实现。


这正是我所需要的。
J. Polfer


4

我会坚持使用众所周知的MD5实现,并远离从第三方供应商那里找到的库。描述MD5 的原始RFC 1321具有示例C实现。

提醒:MD5的已知弱点是冲突攻击,而不是原 像攻击,因此它适用于某些加密应用程序,但不适用于其他加密应用程序。如果您不知道它们之间的区别,那么就不应该使用它,但是不要完全丢弃它。参见http://www.vpnc.org/hash.html


1
对于密码学,我将完全避开MD5 ...
Toby

1
@Joby:感谢这种想法,但是MD5的某些方面对于密码学来说是很好的。您只需要知道它的优缺点。
詹森·S,2010年

+1用于链接到原始RFC中的C源代码。即使我可能会使用Microchip的源代码,但制造此芯片的人也将继续使用该芯片。
davidcary 2010年


3

MD5的Wikipedia页面上:

……已经证明MD5不能抗碰撞,MD5不适合依赖此属性的应用程序,例如SSL证书或数字签名。

和同一页面上的SSL研究人员:

我们也希望也将重新考虑在其他应用程序中使用MD5。

我了解您可能不想听到此消息,但是您真的需要MD5吗?它不应该用于加密目的,因为它太不安全了(并且有很多彩虹表可用)。如果您正在寻找仅用于验证数据的内容,请查看计算成本更低的CRC此处代码)。但是,如果您其用于加密目的,那么我建议您使用SHA吗?唯一的问题是,大多数加密安全算法在微控制器上的运行效果都不佳。我知道MD5似乎“足够好”,但工程方法是要谨慎一点。


1
不要完全排除MD5:您对“它不应该用于加密目的,因为它太不安全了”的说法过于笼统。
杰森S

1
另外,请勿将哈希算法具有或不具有彩虹表的事实作为使用或不使用彩虹表的考虑因素。如果SHA现在没有很多彩虹表,那么它将。在邮件上附加一个秘密的“盐”以解决该问题。
杰森S
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.