什么是Hash函数?Hash哈希是什么意思

什么是Hash函数?Hash哈希是什么意思


发表:2022-11-02 23:33:08 浏览数:

来源:作者:

给定Hash函数H和任意的消息输入x,本文目录什么是Hash函数Hash哈希是什么意思什么是hashhash什么意思什么是Hash函数首先介绍下Hash函数Hash函数(也称散列函数或散列算法)的输入为任意长度的消息,不带密钥的Hash函数只需要有一个消息输入,即Hash函数是一种将任意长度的消息串M映射成为一个定长消息的函数,找到一个消息输入使得它的Hash值等于这个输出,Hash函数将一个任意比特长度的输入x,哈希这个词也用于指代这样一个函数的输出值什么是hash提到hash,Hash函数的目的是为指定的消息产生一个消息“指纹”。

本文目录

什么是Hash函数

首先介绍下Hash函数


Hash函数(也称散列函数或散列算法)的输入为任意长度的消息,而输出为某一固定长度的消息,即Hash函数是一种将任意长度的消息串M映射成为一个定长消息的函数,记为H。称h=H(M)为消息M的Hash值或消息摘要,有时也称为消息的指纹。通常Hash函数应用于数字签名、消息完整性检查等方面。
设H是一个Hash函数,x是任意长度的二元串,相应的消息摘要为y=H(x),通常消息摘要是一个相对较短的二元串。假设我们已经计算出了y的值,那么如果有人改变了x的值为xˊ,则通过计算消息摘要yˊ=H(xˊ),验证yˊ与y不相等就可以知道原来的消息x已被改变。
通常,Hash函数可以分为两类:不带密钥的Hash函数和带密钥的Hash函数。不带密钥的Hash函数只需要有一个消息输入;带密钥的Hash函数规定要有两个不同的输入,即一个消息和一个密钥。


Hash函数的目的是为指定的消息产生一个消息“指纹”,Hash函数通常具有以下这些性质:



  • 压缩性。Hash函数将一个任意比特长度的输入x,映射成为固定长度为n的输出H(x)。
  • 正向计算简单性。给定Hash函数H和任意的消息输入x,计算H(x)是简单的。
  • 逆向计算困难性。对所有预先给定的输出值,找到一个消息输入使得它的Hash值等于这个输出,在计算上是不可行的。即对给定的任意值y,求使得H(x)=y的x在计算上是不可行的。这一性质也称为单向性。
  • 弱无碰撞性。对于任何输入,找到一个与它有相同输出的第二个输入,在计算上是不可行的,即给定一个输入x,找到一个xˊ,使得H(x)= H(xˊ)成立在计算上是不可行的。
  • 强无碰撞性。找出任意两个不同的输入x与xˊ,使得H(x)= H(xˊ)成立在计算上是不可行的。

攻击者可以对Hash函数发起两种攻击。第一种是找出一个xˊ,使得H(x)= H(xˊ)。例如,在一个使用Hash函数的签名方案中,假设s是签名者对消息x的一个有效签名,s=sig(H(x))。攻击者可能会寻找一个与x不同的消息xˊ,使得H(x)= H(xˊ)。如果找得到,则攻击者就可以伪造对消息xˊ的签名,这事因为s也是对消息xˊ的有效签名。Hash函数的弱无碰撞性可以抵抗这种攻击。
攻击者还可以发起另一种攻击,同样一个应用Hash函数的签名方案中,对手可能会寻找两个不同的消息x和xˊ,使得H(x)= H(xˊ),然后说服签名者对消息x签名,得到s=sig(H(x))。由于s=sig(H(xˊ)),所以攻击者得到了一个对消息xˊ的有效签名。Hash函数的强无碰撞性可以抵抗这种攻击。
Hash函数的另一种常见的攻击方法是生日攻击,感兴趣的读者可以参阅参考文献中生日攻击的的相关资料。为防止生日攻击,通常的方法就是增加Hash值的比特长度,一般最小的可接受长度为128位。常见的Hash函数,如MD5和SHA分别具有128比特和160比特的消息摘要。

Hash哈希是什么意思

(或译作“散列”)是一种函数,它把任何数字或者字符串输入转化成一个固定长度的输出。通过输出我们不可能反向推得输入,除非尝试了所有的可能的输入值。下面是一个简单的哈希函数的例子,平方根:17202的平方根是很容易求得的,它大概是131.15639519291463,所以一个简单的哈希函数的输出可能是输入的数字的平方根的后面几位小数,在这个例子里面就是9291463。但是,只给出9291463的话,我们几乎不可能推算出它是哪个输入的输出。现代加密哈希比如像SHA-256,比上面这个例子要复杂的多也要安全的多。哈希这个词也用于指代这样一个函数的输出值

什么是hash

提到hash,相信大多数同学都不会陌生,之前很火现在也依旧很火的技术区块链背后的底层原理之一就是hash,下面就从hash算法的原理和实际应用等几个角度,对hash算法进行一个讲解。
1、什么是Hash
Hash也称散列、哈希,对应的英文都是Hash。基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出。这个映射的规则就是对应的Hash算法,而原始数据映射后的二进制串就是哈希值。活动开发中经常使用的MD5和SHA都是历史悠久的Hash算法。
echo md5(“这是一个测试文案“);
// 输出结果:2124968af757ed51e71e6abeac04f98d
在这个例子里,这是一个测试文案是原始值,
2124968af757ed51e71e6abeac04f98d 就是经过hash算法得到的Hash值。整个Hash算法的过程就是把原始任意长度的值空间,映射成固定长度的值空间的过程。
2、Hash的特点
一个优秀的hash算法,需要什么样的要求呢?
a)、从hash值不可以反向推导出原始的数据
这个从上面MD5的例子里可以明确看到,经过映射后的数据和原始数据没有对应关系
b)、输入数据的微小变化会得到完全不同的hash值,相同的数据会得到相同的值
echo md5(“这是一个测试文案“);// 输出结果:2124968af757ed51e71e6abeac04f98decho md5(“这是二个测试文案“);// 输出结果:bcc2a4bb4373076d494b2223aef9f702可以看到我们只改了一个文字,但是整个得到的hash值产生了非常大的变化。
c)、哈希算法的执行效率要高效,长的文本也能快速地计算出哈希值
d)、hash算法的冲突概率要小
由于hash的原理是将输入空间的值映射成hash空间内,而hash值的空间远小于输入的空间。根据抽屉原理,一定会存在不同的输入被映射成相同输出的情况。那么作为一个好的hash算法,就需要这种冲突的概率尽可能小

hash什么意思

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

本站编辑:
    更多内容:

    小酷手机的小酷机型?小酷手机到底怎么样

    本文目录小酷手机的小酷机型小酷手机到底怎么样小酷手机的小酷简介小酷是什么手机的语音助手小酷手机的小酷机型小酷W300采用了4.5英寸大屏幕的

    阅读

    ubuntu 手机(哪款手机的系统是ubuntu的)

    本文目录哪款手机的系统是ubuntu的ubuntu系统下怎么连接手机手势操作秒安卓 Ubuntu版PRO 5深度体验Ubuntu手机系统会成

    阅读

    畅销手机排行(2020最畅销手机TOP10出炉,为何苹果能够疯狂霸榜...

    本文目录2020最畅销手机TOP10出炉,为何苹果能够疯狂霸榜上半年最畅销的是哪几台手机呢2021年全球手机销量排行出炉,其中哪些品牌的手机

    阅读

    家用电脑一体机(电脑一体机好还是台式好)

    本文目录电脑一体机好还是台式好家用电脑一体机好还是台式机好家用一体机电脑哪个品牌好家用电脑一体机哪个品牌好家用一体机电脑究竟好不好想买台二手

    阅读

    华为nova6se(这款华为nova6se怎么样)

    我更推荐魅族16T.华为nova6se有nfc功能吗华为nova6se这款手机有很多朋友都比较喜欢,本文目录这款华为nova6se怎么样华为

    阅读

    电脑硬件基本知识?从哪可以对电脑硬件知识的全方面了解和各种搭...

    本文目录电脑硬件基本知识从哪可以对电脑硬件知识的全方面了解和各种搭配,想学学DIY装机小白一枚硬件工程师需要学习哪些知识为什么电脑城的小弟小

    阅读

    酷派官网首页(酷派手机系统怎么升级)

    本文目录酷派手机系统怎么升级酷派官网首页地址是什么酷派手机怎么样酷派手机官网酷派手机系统怎么升级在网络正常开启的状态下,点击“系统更新”手机

    阅读

    开机密码忘记(Win10开机密码忘记怎么办)

    本文目录Win10开机密码忘记怎么办手机开机密码忘记了怎么办开机密码忘了怎么办手机忘记开机密码怎么办我来教你windows7开机密码忘了怎么

    阅读

    佳通G2和天语小黄蜂哪个好?佳通g2什么时候上市

    本文目录佳通G2和天语小黄蜂哪个好佳通g2什么时候上市佳通G2的佳通G2简介请文佳通G2这个款手机怎么样主要佳通到底是国产还是山寨啊佳通GT

    阅读

    aca酸奶机(酸奶机哪个品牌的好)

    本文目录酸奶机哪个品牌的好酸奶机哪个牌子好家用酸奶机什么牌子好酸奶机哪个品牌的好酸奶机的牌子我觉得并不重要,酸奶的发酵的原理是恒温发酵,也就

    阅读

    华为poe交换机(华为poe供电交换机怎么配置)

    本文目录华为poe供电交换机怎么配置poe交换机是什么华为16口 poe供电交换机 多少钱华为poe交换机接口的供电功能该怎么去关闭华为po

    阅读

    军校新生适合带便携电脑吗?便携的办公用笔记本电脑有什么好推荐

    surface go还是surface pro对于研究生来说surface确实是比ipad更为好用的平板电脑,surface go还是sur

    阅读

    hp1319(惠普1319打印机 求解答)

    本文目录惠普1319打印机 求解答惠普传真机1319为什么显示无打印碳粉盒hp1319一体机 如何使用传真功能Hp1319M是激光打印机还是

    阅读

    中兴u880(中兴u880怎么样啊)

    本文目录中兴u880怎么样啊酷派8150和中兴u880哪个好些中兴u880e怎么样,有用过的吗中兴U880E这手机好吗它的优点是什么中兴u8

    阅读

    1p空调 一天(24小时)的耗电量是多少?小一匹空调每小时的用电...

    本文目录1p空调 一天(24小时)的耗电量是多少小一匹空调每小时的用电是多少1p空调一晚上多少度电1匹的空调耗电量是多少1p空调 一天(24

    阅读

    戴尔电脑d610怎么装系统?我的笔记本是dell d610,咨询一下升级c...

    咨询一下升级cpu的问题dell d610怎么设置u盘启动戴尔笔记本D610怎么样 性能和价格怎么样呢戴尔电脑d610怎么装系统1,有些bi

    阅读

    iphone4上市价格多少?iphone4的价格到底多少

    现在市面上当Iphone4基本上都是(扳机)意思就是翻新机 组装机 质量很差很差,本文目录iphone4上市价格多少iphone4的价格到底

    阅读

    360路由器(360路由器功能)

    本文目录360路由器功能360路由器好用吗360路由器功能360路由器好用吗360路由器功能  360安全路由拥有全方位防黑,高速双频120

    阅读

    百度杀毒评测(Windows自带的杀毒软件真的强到可以不用第三方杀...

    发现越来越多的电脑似乎都不怎么安装杀毒软件了,再比如百度杀毒软件都已下线了,当下的杀毒软件越来越少大家能够说了几款杀毒软件名称来,杀毒软件并

    阅读

    格兰仕烤箱怎么样 格兰仕烤箱的价格及使用方法介绍?格兰仕烤箱...

    格兰仕烤箱怎么样  格兰仕电烤箱的烧烤功能十分全面,本文目录格兰仕烤箱怎么样 格兰仕烤箱的价格及使用方法介绍格兰仕烤箱价格是多少美的 格兰仕

    阅读