散列函数

散列函数:

1. 区分:除留余数法 && 随机数法

除留余数法: h(k)=K mod N;

随机数法: h(k)=(k+Random(N)) mod N;   Random(N)返回一个0到N-1的整数

注意:Random(int N)生成的其实是一个伪随机数。

伪随机数: 如果设置的随机种子相同,则不断调用随机函数可生成不重复数列,而在查找时,同样的随机种子,每次得到的数列是相同的。

时间: 2024-08-30 18:28:33

散列函数的相关文章

散列函数之单散列算法解决冲突问题

1. 问题 问题同<简单散列函数算法> 设有10个非负整数,用不多于20个的储存单元来存放,如何存放这10个数,使得搜索其中的某一个数时,在储存单元中查找的次数最少? 问题类似于,有10个带号码的球,放到编号为{0, 1, 2, -, 19}共20个盒子中,每个盒子最多放一个,问如何放,使能够用最少的次数打开盒子,知道任一个球所在的盒子编号? 2. 分析 <简单散列函数算法>中,已经分析得出,只要能解决冲突问题,就能将查找时间降为常量范围内. 思路:当一个数发生冲突时,再找一个没有

密码学初级教程(二)公钥密码RSA与单向散列函数与消息认证码

求离散对数非常困难 RSA是Ron Rivest/Adi Shamir/Leonard Adleman的姓氏首字母组成. RSA可以被用于公钥密码和数字签名. RSA加密:密文=明文EmodN(E和N为公钥) RSA解密:明文=密文DmodN(D和N为私钥) 对RSA的破解: 暴力破解:暴力破解的难度会随着D的长度增加而变大,当D足够长时,就不可能在现实的时间内通过暴力破解找出D. 混合密码系统:用对称密码提高速度,用公钥密码保护会话密钥 混合密码系统的组成机制: 用对称密码加密消息 通过伪随机

【Java编码准则】の #13使用散列函数保存密码

明文保存密码的程序在很多方面容易造成密码的泄漏.虽然用户输入的密码一般时明文形式,但是应用程序必须保证密码不是以明文形式存储的. 限制密码泄漏危险的一个有效的方法是使用散列函数,它使得程序中可以间接的对用户输入的密码和原来的密码进行比较,而不需要保存明文或者对密码进行解密后比较.这个方法使密码泄漏的风险降到最低,同时没有引入其他缺点. [加密散列函数] 散列函数产生的值称为哈希值或者消息散列,散列函数是计算可行函数,但反过来是计算不可行的.事实上,密码可以被编码为一个哈希值,但哈希值不能被解码成

常见的散列函数

散列函数 在以下的讨论中,我们假设处理的是值为整型的关键码,否则我们总可以建立一种关键码与正整数之间的一一对应关系,从而把该关键码的检索转化为对与其对应的正整数的检索:同时,进一步假定散列函数的值落在0到M-1之间.散列函数的选取原则是:运算尽可能简单:函数的值域必须在散列表的范围内:尽可能使得结点均匀分布,也就是尽量让不同的关键码具有不同的散列函数值.需要考虑各种因素:关键码长度.散列表大小.关键码分布情况.记录的检索频率等等.下面我们介绍几种常用的散列函数. 1.除余法 顾名思义,除余法就是

数据结构之散列函数

1.散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.提供了快速的插入和查找操作,其基于数组实现.??其基本思想就是将关键字key均匀映射到散列表下标0~TableSize-1这个范围之内的某个数. 2.散列函数构造方法: 1>直接定址法:所谓直接定址法就是说,取关键字的某个线性函数值为散列地址,即   优点:简单.均匀,也不会产生冲突.             缺点:需要事先知道关键字的分布情况,适合查找表较小且连续的情况. 由于这样的限

单向散列函数的价值和具体实现的详细使用

关于术语 不同的参考书使用的术语有所不同: 单向散列函数(one-way hash function).消息摘要函数(message digest function).哈希函数.杂凑函数 输入的是消息(message)也称为原像(pre-image) 输出的是散列值(hash value),或消息摘要(message digest),或指纹(fingerprint) 完整性(integrity)/ 一致性 digest [da'dest] vt. 消化:吸收:融会贯通 n. 文摘:摘要 hash

【Java编码准则】の #13使用散列函数保存password

明文保存password的程序在非常多方面easy造成password的泄漏.尽管用户输入的password一般时明文形式.可是应用程序必须保证password不是以明文形式存储的. 限制password泄漏危急的一个有效的方法是使用散列函数.它使得程序中能够间接的对用户输入的password和原来的password进行比較,而不须要保存明文或者对password进行解密后比較.这种方法使password泄漏的风险降到最低,同一时候没有引入其它缺点. [加密散列函数] 散列函数产生的值称为哈希值

网络安全-安全散列函数,信息摘要SHA-1,MD5原理

-----------------------------------------------欢迎查看网络安全连载博客-----------------------------------[网络安全]-安全散列函数.信息摘要SHA-1.MD5算法       [网络安全]-非对称加密,RSA算法,数字签名[网络安全]-RSA非对称算法算法.数字签名                         [网络安全]-建立安全socket连接.登录[网络安全]-[数字证书,证书链]-----------

除法散列函数之散列值问题

算法导论对于除法散列函数的描述.其中涉及到一小点数学问题: k mod m时,m之所以为素数时为了使得k在m所在的素数域上保持唯一性(根据欧拉定理和费马小定理) 散列函数: H(k) = k Mod m 其中m的取值如是描述: 应用除法散列法的时候,要避免选择m的某些值,例如,m不应该为2 的幂 .(尽量取素数,并且距离 2^p 比较远的数值. )因为如果 m = 2^p (2的p次方),则 H(k) 就是k的p个最低位数字.除非一直各种最低p位的排列形式为等可能的,否则在设计散列函数的时候,最