一、摘要算法摘要算法又称哈希算法。它表示输入任意长度的数据,输出固定长度的数据,它的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。目前可以被解密逆向的只
摘要算法又称哈希算法。
它表示输入任意长度的数据,输出固定长度的数据,它的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。
目前可以被解密逆向的只有CRC32算法,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。
消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密。
消息摘要算法分为三类:MD(Message Digest):消息摘要SHA(Secure Hash Algorithm):安全散列MAC(Message Authentication Code):消息认证码
这三类算法的主要作用:验证数据的完整性
二、MD5简介MD5即Message-Digest Algorithm 5(信息-摘要算法)。
属于摘要算法,是一个不可逆过程,就是无论多大数据,经过算法运算后都是生成固定长度的数据,结果使用16进制进行显示的128bit的二进制串。通常表示为32个十六进制数连成的字符串。
MD5有什么用?
用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。更多用在文档校验上,用来生成密钥检测文档是否被篡改。
三、在线MD5加密有很多在线进行MD5加密的网站,如下:
http://www.metools.info/code/c26.html
举例: 给字符串12334567加密成。
如图结果为:
四、C语言实现MD5算法源文件如下:md5.h
md5.c
五、MD5加密实例MD5加密步骤如下:
定义初始化MD5值计算
实现MD5值的计算及结构体的更新:
输出转换格式整理
转换成32位的16进制字符串。
实例1 字符串加密对字符串进行加密:
执行结果如下:
本例对字符串12334567进行加密,结果和在线加密结果一致。
实例2 文件加密对文件进行加密
运行结果:
在线验证结果对比: