精华内容
下载资源
问答
  • 什么哈希函数

    2020-09-25 11:45:24
    H可应用于任意大小的数据块。 H产生定长的输出。 对任意给定的x,计算H(x)比较容易,用硬件和软件均可以实现。 出于安全性考虑,对哈希函数的三个安全性假设: 对任意给定的散列值h,找到满足H(x)=h的x在计算上是...

    Hash函数译为哈希函数,又称散列函数。是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出的值称为散列值或消息摘要。简单来说就是一种将任意长度的输入消息压缩成某一固定长度的消息摘要的函数

     

    它具备以下的性质(哈希函数所必须的性质):

    1. H可应用于任意大小的数据块。
    2. H产生定长的输出。
    3. 对任意给定的x,计算H(x)比较容易,用硬件和软件均可以实现。

    出于安全性考虑,对哈希函数的三个安全性假设:

    1. 对任意给定的散列值h,找到满足H(x)=h的x在计算上是不可行的,称之为单向性。
    2. 对任意给定的分组x,找到满足y≠x,且H(x)=H(y)的y在计算上是不可行的,称之为抗弱碰撞性。
    3. 找到任何满足H(x)=H(y)的偶对x=y在计算上是不可行的,称之为抗强碰撞性。

    满足这三个安全性假设的安全Hash函数称作碰撞稳固的Hash函数。

    展开全文
  • 哈希函数可以将任意长度的消息压缩为某一固定长度的消息摘要函数。一句话,Hash简直了。 当然有逆天的一面就有大缺点,过程不可逆。傻了吧,哈哈。 Hash的性质: 1. (逆天特性)应用于任意长的消息,产生固定...

    Hash函数和消息认证

    先说Hash

    哈希函数,可以将任意长度的消息压缩为某一固定长度的消息摘要函数。一句话,Hash简直了。

    当然有逆天的一面就有大缺点,过程不可逆。傻了吧,哈哈。

    Hash的性质:

    1.    (逆天特性)应用于任意长的消息,产生固定长的输出(散列值,消息摘要,数字指纹随便你叫什么了);

    2.    (单向性)对于给定消息x,H(x)很容易得出。但是对于给定z,寻找H(x)=z是不可行的;

    3.    (安全特性)抗弱碰撞性:有x,找一个y,使得H(x)=H(y)计算不可行;抗强碰撞性:寻找(x,y),使得使得H(x)=H(y)计算不可行。

    4.    (雪崩性)雪崩效应,散列值的每一位都与消息的每一位有关,相近的消息,输出很大差别。

    Hash:

           带密钥的Hash和不带密钥的Hash。区别在于前者一个输入,后者两个:消息+密钥。后者一般用于产生消息认证码MAC。

    Hash应用:

    1.数据完整性验证:由于雪崩性,稍有改动一对比就发现了;2.产生数字签名:计算H(m),然后私钥加密;3.密钥推导:天生单向性;4.伪随机数生成。

    简单说下Hash函数的攻击方法:

           第一类生日攻击:

                  就是说,n个输入,其中有一个输出H(x),那我要多少个y才能使H(y)=H(x)的概率达到0.5?

                  答案是2/n个。假如输出为m位长,那么就有2m个输出。引出了第二类生日攻击

           第二类生日攻击:

                  k~=2m/2,说明了散列值不能小于128位啊。

           模差分攻击:

                  最有效的方法,也叫比特追踪法。这个假期研究研究。

     

    再额外提下基于分组密码的Hash函数:

           可以用CBC和CFB。

    由于这种基于加密体制的Hash函数经不起攻击,所以大多都用另一类,即构造复杂的非线性关系实现单向性。这就产生了那些著名的算法和那些著名的事。

     

    MD5算法:

           输入消息:长度小于264,以512位一组。

           输出消息:128位

    过程:

    1.消息填充:将消息长度填充至差64位就是512的倍数。那64位是表示填充长度的,是先从低位表示填充长度的。

           2.填充后的消息是512的倍数,然后按512分组,每组又是16个32位长的字。

           3.初始化中间结果:128位的缓存区来存储中间结果,对其初始化4个32位长的寄存器分别存放四个固定的整数。

           4.迭代压缩:每个分组经压缩函数HMD5处理。

                         那就说说这个压缩函数,HMD5有四轮处理,四个轮函数结构相同但是逻辑函数不同。

    5.    输出:最后一个HMD5的输出即为消息摘要。

     

    HMD5

           四轮处理过程,每轮都对缓冲区16轮迭代运算。

     

    SHA:

           与MD5一脉相承,来自MD4,真名SHA-1。

           输入消息:长度小于264,以512位一组。

           输出消息:160位

    过程:

    1.消息填充:(跟MD5一样)将消息长度填充至差64位就是512的倍数。那64位是表示填充长度的,是先从位表示填充长度的。

           2.填充后的消息是512的倍数,然后按512分组,每组又是16个32位长的字。

           3.初始化中间结果:160位的缓存区来存储中间结果,对其初始化5个32位长的寄存器分别存放五个固定的整数。

           4.迭代压缩:四轮处理,每轮20迭代,也是逻辑函数不同

    5.  输出:最后一个分组的输出即为160位的消息摘要。

     

    在压缩函数上看两者区别:

           MD5直接用分组的16个字作为迭代,SHA则将16字扩展为80字。

     

    MD5和SHA算法必然相似,哥俩嘛,

     

     

    消息认证码MAC:

           验证信息来源的真实性;验证消息的完整性。

     

    很显然,Hash函数很适合设计MAC。所以有了HMAC:

           累了,休息一会。



    展开全文
  • 该列表可以由 将以下规则之一应用于拼写错误的单词: <p>a)在任何可能的位置添加一个字符 <p>b)从单词中删除一个字符 <p>c)交换单词中的相邻字符 您的程序应从命令行运行,如下...
  • 数学待学习部分:最大似然估计、无偏量估计、哈希函数、最小二乘求解、LASSO回归、正太分布 理论 知识待理解部分: 对抗神经网络?生成式对抗网络GAN? 为什么只要被注入的噪音抽样服从正太分布,从整体看,...
    1. 数学待学习部分:最大似然估计、无偏量估计、哈希函数、最小二乘求解、LASSO回归、正太分布 理论

    2. 知识待理解部分:

    3. 对抗神经网络?生成式对抗网络GAN?

    4. 为什么只要被注入的噪音抽样服从正太分布,从整体看,噪音就可以最终相互抵消?

    5. 强差分隐私?

    6. 数据分析?

    7. 众包模式?大数据收集?机器学习?统计分析?

    8. COSEC研发的适用于移动感知众包任务的交易平台是什么玩意?

    9. RAPPOR:randomized aggregatable privacy-preserving ordinal
      response随机聚合的隐私保护有序响应? RR(随机应答)的证明过程也没有看懂

    展开全文
  • 1什么是布隆过滤器 布隆过滤器是一种多哈希函数映射的快速查找算法(存储结构),可以实现用很小的空间和运算代价,来实现海量数据的存在与否的记录(黑白名单判断)。特点是高效的插入和查询,可以判断出一定不存在和...
    1

    什么是布隆过滤器

           布隆过滤器是一种多哈希函数映射的快速查找算法(存储结构),可以实现用很小的空间和运算代价,来实现海量数据的存在与否的记录(黑白名单判断)。特点是高效的插入和查询,可以判断出一定不存在和可能存在

          相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的可能存在结果是概率性的,而不是确切的。

    布隆过滤器是一个bit向量或者bit数组

    5d822a3200fc6d8ea901667d8eb71111.png

    2

    布隆过滤器操作及原理

    1添加元素

            如果我们要添加一个值到布隆过滤器中,需要使用多个hash函数生成多个hash值,每个hash值对应位数组上的一个点,然后将位数组对应的位置标记为1。

          如下图,字符串'hello'就通过3种hash函数生成了哈希值1,3,9,字符串‘word’就生成了1,5,7

    注:由于hello和word都返回了bit位1,所以前面的1会被覆盖

    d43f4aeb90611400e9eee884118a30cf.png

    619dc2aeb003bf61e993eb494d233734.png

    2查询元素

          查询元素flink是否存在集合中的时候,同样的方法将flink通过哈希映射到位数组上的3个点。如果3个点的其中有一个点不为1,则可以判断该元素一定不存在集合中。

           如果3个点都为1,则该元素可能存在集合中。注意:此处不能判断该元素是否一定存在,可能存在一定的误判率。

          因为新增的元素越来越多,被置为 1 的 bit 位也会越来越多,这样“flink” 即使没有被存储过,但是万一哈希函数返回的三个 bit 位都被其他值置位了 1 ,那么程序还是会判断 “flink” 这个值存在。比如flink三个hash值为1,3,7,就能说明flink一定存在吗?

    3如何减少误差
    • 加大布隆过滤器的长度,否则很容易就所有的bit位都为1了

    • 哈希函数的个数要考虑,个数越多则布隆过滤器 bit 位置位 1 的速度越快,且布隆过滤器的效率越低;但是如果太少的话,那我们的误差会变高。

    3

    布隆过滤器在hbase中的应用

    1布隆过滤器类型

           布隆过滤器是hbase中的高级功能,它能够减少特定访问模式(get/scan)下的查询时间。不过由于这种模式增加了内存和存储的负担,所以被默认为关闭状态。

    hbase支持如下类型的布隆过滤器:

    • NONE          不使用布隆过滤器

    • ROW           行键使用布隆过滤器

    • ROWCOL    列键使用布隆过滤器

    至于选用什么模式,还是要看使用场景

    2hbase数据存储及访问

            hbase的实际存储结构是HFile,它是位于hdfs系统中的,也就是在磁盘中。而加载到内存中的数据存储在MemStore中,当MemStore中的数据达到一定数量时,它会将数据存入HFile中。

           HFIle是由一个个数据块与索引块组成,他们通常默认为64KB。hbase是通过块索引来访问这些数据块的。而索引是由每个数据块的第一行数据的rowkey组成的。当hbase打开一个HFile时,块索引信息会优先加载到内存当中。然后hbase会通过这些块索引来查询数据。

    3布隆过滤器在hbase中的应用

          当我们随机读get数据时,如果采用hbase的块索引机制,hbase会加载很多块文件。

           采用布隆过滤器后,它能够准确判断该HFile的所有数据块中是否含有我们查询的数据,从而大大减少不必要的块加载,增加吞吐,降低内存消耗,提高性能

             在读取数据时,hbase会首先在布隆过滤器中查询,根据布隆过滤器的结果,再在MemStore中查询,最后再在对应的HFile中查询。

    f9fbf1eef6594186261347d69cab2554.gif

    2020大数据面试题真题总结(附答案)

    数据建模知多少?

    如何写好一篇数据部门规范文档

    如何优化整个数仓的执行时长(比如7点所有任务跑完,如何优化到5点)

    从0-1建设数仓遇到什么问题?怎么解决的?

    多值维度及交叉维度最佳解决方案

    深入探究order by,sort by,distribute by,cluster by

    Hive调优,数据工程师成神之路

    数据质量那点事

    简述元数据管理

    你真的了解全量表,增量表及拉链表吗?

    缓慢变化维(SCD)常见解决方案

    全方位解读星型模型,雪花模型及星座模型

    Sqoop or Datax

    left join(on&where)

    ID-Mapping

    你们公司还在用SparkOnYan吗?

    大厂高频面试题-连续登录问题

    朋友面试数据研发岗遇到的面试题

    数据仓库分层架构

    简单聊一聊大数据学习之路

    朋友面试数据专家岗遇到的面试题

    HADOOP快速入门

    数仓工程师的利器-HIVE详解

    17360a7023096d2fd32a367d6890d5d9.png

    展开全文
  • Perl语言入门(第五版-中文版).pdf

    热门讨论 2010-11-02 09:48:06
    哈希函数 哈希的典型应用 %env哈希 习题 第七章漫游正则表达式王国 什么是正则表达式? 使用简易模式 字符集 习题 第八章以正则表达式进行匹配 以m//进行匹配 可选修饰符 锚位 绑定操作符=~ 模式串...
  • 什么哈希函数,一个哈希函数必须具备哪些基本性质,它能应用在哪些场景 试简要说明 SHA-512 的执行过程 什么是消息验证码(MAC),对比它和哈希算法在安全性能上的不同 Feistel 模型是分组密码的经典模型;它的...
  • 所有变量都是局部变量,为了使得定义的函数可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样...
  • MD5源码(C++)

    热门讨论 2009-09-07 19:13:52
    MD5的全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输... MD5用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司发明的MD5算法和由美国国家技术标准研究所建议的安全散列算法SHA.
  • SQL注入是Internet上最危险、最有名的安全漏洞之一,本书是目前唯一一本专门致力讲解SQL威胁的图书。本书作者均是专门研究SQL注入的安全专家,他们集众家之长,对应用程序的基本编码和升级维护进行全面跟踪,详细...
  • SQL注入攻击与防御

    2013-10-04 16:08:40
    SQL注入是Internet上最危险、最有名的安全漏洞之一,本书是目前唯一一本专门致力讲解SQL威胁的图书。本书作者均是专门研究SQL注入的安全专家,他们集众家之长,对应用程序的基本编码和升级维护进行全面跟踪,详细...
  • Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限游戏吧,RES、SRC资源都有,都...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
  • Java资源包01

    2016-08-31 09:16:25
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
  • java开源包101

    2016-07-13 10:11:08
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
  • java开源包2

    热门讨论 2013-06-28 09:17:39
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
  • java开源包3

    热门讨论 2013-06-28 09:20:52
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
  • java开源包6

    热门讨论 2013-06-28 09:48:32
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
  • java开源包5

    热门讨论 2013-06-28 09:38:46
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...
  • java开源包10

    热门讨论 2013-06-28 10:06:40
    LemonSMS 这个Java库可以让开发者在应用程序中集成使用GSM调制解调器或兼容电话来发送SMS消息。 远程桌面 Java Remote Desktop.tar Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

哈希函数可以应用于什么