用人话理解hash算法、特性、唯一性等

背景
博主在本科的时候曾经参加过数学建模,当初提交参赛论文的时候有两个提交时间点,第一个是提交MD5码的时间,第二个是提交具体参赛论文的时间,当初就很纳闷,直接提交论文不就ok吗?为什么多此一举呢
我来告诉大家答案:

  1. MD5算法是hash算法的一种,使用目的是将一篇论文转化成一个固定的字符串,只要在论文里改动了一点点,比如标点符号、空格等,重新生成的hash值(一个字符串)一定不同,用这点特性可以判断参赛论文在提交了MD5码后有没有再修改论文,或者说是不是你当时提交的论文
  2. 有的人可能会说,万一不同人的参赛论文出现了同样的hash值(MD5码)怎么办?没关系的,这个概率及其小,大概是1/2^64的概率,就算碰见了也没关系,因为使用的目的是判断参赛论文前后有没有修改,修改了则hash值(MD5码)一定改变

1. hash算法的定义

Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

2. hash算法必须知道的两个小知识

抗碰撞能力:对于任意两个不同的数据块,其hash值相同的可能性极小&#x

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值