md5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
一.作用:一般用于互联网一种数据的唯一性标识。
二.实体:本身是一个128位的0/1比特。一般被表示为16进制的字符串。4个比特位组成一个16进制字符,因此常常能见到的是(128/4=)32个16进制字符组成的字符串 4951 dd1c bff8 cbbe 4cd4 475c a939 fc8b,当然它实质是一种消息摘要算法
三.特点:
1.完全相同的一段数据,不论时间地点(加密算法相同的条件)加密出的32位的字符串完全相同。
2.加密过程本身就是一个有损的加密过程。因此几乎不能还原出原始数据。安全
补充:一般还原出原始数据都是使用碰撞的方式来还原。意思大概和穷举的意思一样,有足够多的原始数据量,世界上的所有数据用 1n来表示,把1n都用MD5计算一遍得1xnx(x表示计算后得的数)。把1n当成键值对的键,把1x~nx放入键值对的值,当得到一个MD5字符串,通过值去找键,就知道是什么数据了。因为你本来就拥有数据,因此才能找到数据。但当你没有原始数据时,想通过128比特的玩意去恢复大于128比特的数据本身就是玩笑,数据量都不一样,至于原理有兴趣的朋友可以研究研究信息论。不想研究的可以回想回想之前学的香农公式。再从这一点去研究。又有大的世界。
3.散列能力巨强。安全