md5简介
md5(Message-Digest Algorithm 5(信息-摘要算法5))
MD5算法具有以下特点:
- 任意长度的数据,算出的MD5值长度都是固定的。
- 把一个任意长度的字节串变换成一定长的十六进制数字串
- 压缩性: 容易计算:
从原数据计算出MD5值很容易。
- 抗修改性
对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
- 强抗碰撞:
已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
- md5过程是不可逆的
md5的应用
文件校验
- 软件下载站、论坛数据库、系统文件安全等方面
数字证书
- 互联网通讯中标志通讯各方身份信息的一串数字
- 提供了一种在Internet上验证通信实体身份的方式
登录验证
- 操作系统的登陆认证,如Unix、各类BSD系统登录密码
MD5算法描述
- MD5就是将输入的信息以512位分组,且每一分组被划分为16个32位子分组
- 经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值
QCryptographicHash
应用计算方法
// MD5 方法一: QByteArray data = "hello, world"; QCryptographicHash hash(QCryptographicHash::Md5); hash.addData(data); hash.addData("你好, 世界"); // 计算 QByteArray arry = hash.result(); qDebug() << arry; arry = arry.toHex(); qDebug() << arry; 方法二: QByteArray arry = QCryptographicHash::hash("hello, world", QCryptographicHash::Md5); qDebug() << arry.toHex();
md5转换工具下载
链接:https://pan.baidu.com/s/1rYQxOwSdlWTcDMoFdMlmHg
提取码:f53f