MD5文件校验QT C++示例

MD5文件校验QT C++示例

简单介绍

1、介绍
MD5算法常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5全程是报文摘要算法(Message–Digest Algorithm 5)。此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。
2、特性
(1)输入任意长度的信息,经过处理,输出128位的信息(数字指纹)
(2)从原数据计算出的MD5值很容易
(3)让密文中的每一位受明文中的许多位影响
(4)将密文和密钥之间的统计关系变得尽可能复杂,是的对手急事获取了关于密文的一些统计特性,也无法推测秘钥。有损加密的过程,根据128位的输出结果不可能反推出输入的信息(不可逆)
(5)无论秘钥或明文的任何细微变化都应当引起密文的剧烈改变,输入中的以为发生变化,HASH值中将有至少一半发生变化,想找到两个不同的数据,是他们具有相同的MD5值,是非常困难的。
(6)寻找任何的(M1,M2),使H(M1)=H(M2)在计算上不可行,防范生日攻击。
(7)不同的输入得到不同的结果(唯一性)

代码实例

初始化MD5

void Md5Fun::MD5Init(MD5_CTX *context)
{
   
    context->count[0] = 0;
    context->count[1] = 0;
    context->state[0] = 0x67452301;
    context->state[1] = 0xEFCDAB89;
    context->state[2] = 0x98BADCFE;
    context->state[3] = 0x10325476;
}

不断地计算MD5

void Md5Fun::MD5Final(MD5_CTX 

你可能感兴趣的:(QT,qt,c++)