AI智能
改变未来

iOS面试 – MD5(信息摘要)哈希算法

把一个任意长度的字节串变换成一定长度的十六进制的大整数,用于确保“信息传输”完整一致。

注意: 字符串的转换过程是不可逆的。

MD5 特点:

  1. 压缩性: 任意长度的数据,算出的 MD5 值长度都是固定的;
  2. 容易计算: 从原数据计算出 MD5 值很容易;
  3. 抗修改性: 对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别;
  4. 弱抗碰撞: 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的;
  5. 强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的。

MD5 应用:

  1. 一致性验证: MD5 将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的 MD5 信息摘要;
  2. 数字签名: 就像每个人都有自己独一无二的指纹,MD5 对任何文件产生一个独一无二的“数字指纹”;
  3. 安全访问认证: 利用 MD5 来进行文件校验,被大量应用在软件下载站、论坛数据库、系统文件安全等方面。

MD5 加盐:

  • MD5 本身是不可逆运算,但是,目前网络上有很多数据库支持反查询;
  • MD5 加盐就是在密码哈希过程中添加的额外的随机值;
  • 注意: 加盐要足够长,足够复杂。
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » iOS面试 – MD5(信息摘要)哈希算法