2016-11-04 15:06发布
md5是签名算法吗?签名算法不是说要包含抗抵赖性,数据的完整性要求么?我想知道md5是怎么做到抗抵赖性的,为什么大家都说用md5对数据进行签名呢?求解答。
md5不是签名算法。md5是用来校验一个文件的完整性的。比如你有一个文件,大小是2M,你生成一个md5值,在传输文件的时候,告诉接收方这个文件的md5值,接收方在收到文件后,再运行一遍md5,把得到的md5值和你告诉对方的md5值进行比较,如果不相同,说明文件被篡改了。在通常情况下,不同文件生成的md5值不同,哪怕两个文件只有一个字节或者一个二进制位的差异,md5值也不相同。但是在极个别情况下,不同文件还是有可能会得到相同的md5值,所以md5不能完全保证文件的唯一性。在传输文件的时候,文件和md5值都是以明文方式传输,没有加密。数字签名则是有一对公钥和私钥,传输之前用私钥加密,任何人都可以用公钥解密,但是不掌握私钥的人,想把解密后的文件再加密回原始状态是不可能的,这样就保证了其不可抵赖性。
md5并不是签名算法,也不是加密算法,他只是一种摘要算法。使用md5对数据进行签名,其实与网站中将用户明文密码md5之后入库是一个道理。当用户输入密码时,我只需要通过md5后与库中存储的md5值一致即可认为用户输入的密码正确。而文件签名也一样,拿到该文件后,只需要将文件md5后的值与所给的md5值一致,即可认为该文件未曾被篡改。
md5算法保证了,参与处理的内容只要有一个字节变化,最终的计算值也会发生巨大的变化,而想要找到两个一致的md5的对应内容,是及其困难的。
最多设置5个标签!
付费偷看金额在0.1-10元之间
md5不是签名算法。md5是用来校验一个文件的完整性的。比如你有一个文件,大小是2M,你生成一个md5值,在传输文件的时候,告诉接收方这个文件的md5值,接收方在收到文件后,再运行一遍md5,把得到的md5值和你告诉对方的md5值进行比较,如果不相同,说明文件被篡改了。在通常情况下,不同文件生成的md5值不同,哪怕两个文件只有一个字节或者一个二进制位的差异,md5值也不相同。但是在极个别情况下,不同文件还是有可能会得到相同的md5值,所以md5不能完全保证文件的唯一性。在传输文件的时候,文件和md5值都是以明文方式传输,没有加密。数字签名则是有一对公钥和私钥,传输之前用私钥加密,任何人都可以用公钥解密,但是不掌握私钥的人,想把解密后的文件再加密回原始状态是不可能的,这样就保证了其不可抵赖性。
md5并不是签名算法,也不是加密算法,他只是一种摘要算法。使用md5对数据进行签名,其实与网站中将用户明文密码md5之后入库是一个道理。当用户输入密码时,我只需要通过md5后与库中存储的md5值一致即可认为用户输入的密码正确。而文件签名也一样,拿到该文件后,只需要将文件md5后的值与所给的md5值一致,即可认为该文件未曾被篡改。
md5算法保证了,参与处理的内容只要有一个字节变化,最终的计算值也会发生巨大的变化,而想要找到两个一致的md5的对应内容,是及其困难的。
一周热门 更多>