`

常用散列函数

阅读更多
1.平方取中法(Mid-square):首先计算标示符的平方,取结果的中间几位来获得散列表示地址。由于一个平方数的中间几位通常依赖于所有字符,所以标示符中有几个字符相同一样可以产生不同的散列地址。
2.折叠法(folding):键值(x)被划分为几个不同部分,除了最后一个部分外,其它所有部分都是等长的,将这些部分按某种方式相加来获得散列地址。
3.除法(Modular arithmetic):模运算,键值x被转换成数字i,用该整数除以散列表的大小获得余数,


h(x) = i%HTSize;

int hashFunction(char*key, int keyLength) {
    int sum = 0;
    for(int j=0; j<=keyLength; j++) {
        sum = sum + static_cast<int>(key[j]);
    }
    return (sum % HTSize);
}
分享到:
评论

相关推荐

    常用散列算法类源代码(6种)

    CRC32、MD-5、SHA-1、SHA-256、SHA-512、Tiger-192,很容易改写为相对应的C代码(一大堆同前缀函数很烦人……)

    Python-一个使用多种常见哈希算法来哈希字符串文件和网络资源的小小的工具

    一个使用多种常见哈希算法来哈希字符串、文件和网络资源的小小的工具

    常用Hash算法(C语言的简单实现)

    如下所示: #include GeneralHashFunctions.h unsigned int RSHash(char* str, unsigned int len) { unsigned int b = 378551; unsigned int a = 63689; unsigned int hash = 0;... unsigned int i = 0;...

    现代密码学及其应用.pdf

    在此基础上,依次介绍了安全通信要用到的对称密码(分组密码和流密码)与散列函数及其常用算法和分析方法。后,本书以一半的篇幅详细介绍了安全通信所涉及的公钥密码学新成果,包括椭圆曲线密码、超椭圆曲线密码、...

    《labuladong算法小抄》2021完整版 共666页

    4、【散列表】:用散列函数把键映射到一个大数组 5、【树】 6、总结 二、基本操作 1、基本操作:遍历+访问,具体一点---增删查改。 2、不同数据结构存在价值:应对不同场景,尽可能高效。 3、遍历+访问的两种形式:...

    MD5校验器 免安装 很好用 速度快 精准

    一个散列函数,比如 MD5,是一个将任意长度的数据字符串转化成短的固定长度的值的单向操作。任意两个字符串不应有相同的散列值(即,有“很大可能”是不一样的,并且要人为地创造出来两个散列值相同的字符串应该是...

    详解Java中实现SHA1与MD5加密算法的基本方法

    主要介绍了详解Java中实现SHA1与MD5加密算法的基本方法,安全哈希算法第一版和消息摘要算法第五版也是通常人们最常用的加密算法,需要的朋友可以参考下

    Java中常用的加密算法

    MD5全称Message_Digest Algorithm-5,即信息-摘要算法5,消息摘要是采用任意大小的数据并输出固定长度散列值的安全单向散列函数(加密算法如SHA-1或SHA-256),用于确保信息传输完整一致,是计算机广泛使用的杂凑算法...

    快速实现SHA-1算法的硬件结构

    目前常用的安全散列算法是SHA-1算法,它被广泛地应用于电子商务等信息安全领域。为了满足应用对安全散列算法计算速度的需要,该文提出了一种快速计算SHA-1算法的硬件... 单向散列函数是密码学中一种重要的工具,它可以

    EDA/PLD中的快速实现SHA-1算法的硬件结构

    目前最常用的安全散列算法是SHA-1算法,它被广泛地应用于电子商务等信息安全领域。为了满足应用对安全散列算法计算速度的需要,该文提出了一种快速计算SHA-1算法的硬件... 单向散列函数是密码学中一种重要的工具,它可

    数据结构考研,计算机考研必看

    1. 散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址,因为散列函数是一对一的关系,则选择好的( )方法是散列文件的关键。【哈尔滨工业大学 2001二、5 (2分)】 A. 散列函数 B. 除余法中的质数 C....

    Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)

    全称:MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。md5加密算法是不可逆的,所以解密一般...

    第十一节、HIVE常用操作.pdf1

    第十一节、HIVE常用操作一、常用函数1. 查看数据库列表2. 查看数据表列表3. 创建表4. 查看表信息5. 数据导入6. 连接查询7. 排序8. 散列操作9

    EDA/PLD中的数字签名算法SHA-1的FPGA高速实现

    常用的信息验证码是使用单向散列函数生成验证码,安全散列算法SHA-1使用在是因特网协议安全性(IPSec)标准中。在设计中使用FPGA高速实现SHA-1认证算法,以PCI卡形式处理认证服务。 关键词:数字签名算法;现场可编程...

    Java加密和数字签名编程

    在jdk1.5的发行版本中安全性方面有了很大的改进...主要使用单向散列函数算法,可用于检验消息的完整性,和通过散列密码直接以文本形式保存等,目前广泛使用的算法有MD4、MD5、SHA-1,jdk1.5对上面都提供了支持,在java

    PHP的几个常用加密函数

    1.md5()默认情况下以 32 字符十六进制数字形式返回散列值,它接受两个参数,第一个为要加密的字符串,第二个为raw_output的布尔值,默认为false,如果设置为true,md5()则会返回原始的 16 位二进制格式报文摘要 ...

    StructuresandAlgorithms-Code:重温数据结构与算法,代码实践

    前言: 索引: 链表 栈队列 散列表 树 linkedlist 链表 知识点 链表的顺序表示及其基本操作实现 单链表表示及其基本操作实现 双链表......循环链表......散列表即键值对的集合,js里...散列函数与散列表 处理冲突的方法 开放

    基于Web的谈判支持系统合同数字签名的设计 (2005年)

    以几种常用的数字签名技术为基础,并结合WNSS中合同签名应具备的特点,设计了一种使用非对称密钥算法、散列函数和仲裁者的全新的数字签名方案,分析了方案的可行性,并讨论了它在WNSS中的具体实现。

    数字签名算法SHA-1的FPGA高速实现

    随着网络的迅速发展,信息安全越来越...常用的信息验证码是使用单向散列函数生成验证码,安全散列算法SHA-1使用在是因特网协议安全性(IPSec)标准中。在设计中使用FPGA高速实现SHA-1认证算法,以PCI卡形式处理认证服务。

    cpie-cn_r148.pdf

    常用列表处理函数 示例 列表的常用递归模式 函数式参数 第4章使用元组 处理元组的BIF 返回多个值 密码加密 字典 非平衡二叉树 平衡二叉树 第5章并行编程 进程的创建 进程间通信 超时 注册进程 ...

Global site tag (gtag.js) - Google Analytics