非加密哈希函数库-SpookyHash
地址:
https://burtleburtle.net/bob/hash/spooky.html

SpookyHash is a public domain noncryptographic hash function producing well-distributed 128-bit hash values for byte arrays of any length. It can produce 64-bit and 32-bit hash values too, at the same speed, just use the bottom n bits. The C++ reference implementation is specific to 64-bit x86 platforms, in particular it assumes the processor is little endian. Long keys hash in 3 bytes per cycle, short keys take about 1 byte per cycle, and there is a 30 cycle startup cost. Keys can be supplied in fragments. The function allows a 128-bit seed. It's named SpookyHash because it was released on Halloween.
SpookyHash 概述
SpookyHash 是一种公共领域的非加密哈希函数,旨在快速且良好地分布哈希值。以下是 SpookyHash 的一些关键特性和特点:
关键特性:
- 哈希输出大小:
- 生成 128 位的哈希值。
- 还可以生成 64 位和 32 位的哈希值,只需使用 128 位输出的低 n 位。
- 性能:
- 长键的哈希速度约为每个周期 3 字节。
- 短键的哈希速度约为每个周期 1 字节。
- 哈希过程有 30 周期的初始启动成本。
- 输入灵活性:
- 接受任意长度的字节数组,并可以处理以片段方式提供的键。
- 种子值:
- 允许使用 128 位的种子生成哈希,这使得相同输入可以产生不同的输出。
- 平台特定性:
- C++ 的参考实现针对 64 位 x86 平台进行了优化,并假设为小端字节序。
命名:
- "SpookyHash" 的名称源于其发布的日期,恰好在万圣节。
用例:
SpookyHash 通常用于速度至关重要的应用程序,并且加密安全性不是主要关注点。适用于以下任务:
- 进行快速查找的数据哈希。
- 创建数据完整性的校验和。
- 用于软件中的非加密目的,在这些场景中,哈希冲突是可以接受的。
结论:
SpookyHash 在速度和有效哈希分布之间提供了良好的平衡,使其成为许多非加密应用程序的实用选择。
非加密哈希函数库-SpookyHash的更多相关文章
- djb2:一个产生简单的随机分布的哈希函数
目录 LCG算法 示例代码 djb2 示例代码 为什么选择参数33和 33 was chosen because: 5381 was chosen because 哈希选择参考 LCG算法 djb2与 ...
- 为开发者准备的 Android 函数库(2016 年版)
转载:http://www.androidchina.net/5922.html第三方函数库(译者注:包括第三方提供的 SDK,开源函数库)以惊人的方式助力着 Android 开发,借助这些其他开发人 ...
- DSAPI多功能.NET函数库组件
DSAPI.dll不定期更新,增加功能,故无法每次都发到网上,如果需要获得最新版DSAPI.dll的,请到QQ群:419130936群共享里下载. 简介 dsapi.dll是一款基于.net平 ...
- 开发常用的 Android 函数库
第三方函数库(译者注:包括第三方提供的 SDK,开源函数库)以惊人的方式助力着 Android 开发,借助这些其他开发人员辛勤工作的成果,我们开发起来更轻松和快捷.目前存在成千上万的函数库,如何选择正 ...
- Android 为开发者准备的最佳 Android 函数库(2016 年版)
本文是翻译自 CloudRAIL 的官方博客(https://cloudrail.com/best-android-libraries-for-developers/),本文中分享的 Android ...
- 逆向 ctype.h 函数库 isalnum、iscntrl、islower、isxdigit、tolower 函数
0x01 isalnum 函数 函数原型:int isalnum(int c); 函数功能:检查所传的字符是否是字母和数字 动态链接库:ucrtbase.dll C\C++ 实现: #define _ ...
- 安卓开发经验分享:资源、UI、函数库、测试、构建一个都不能少(转)
除了高超的武艺,每位黑忍者还需要装备最好的武器.在软件开发的世界里,好的工具能让我们的生活变得更轻松,在更短的时间里写出更棒的代码. 时光回到2008年,那时安卓还很年轻.只有几个相关的博客和谷歌官方 ...
- Lua中的常用函数库汇总
lua库函数 这些函数都是Lua编程语言的一部分, 点击这里了解更多. assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调 ...
- PHP函数库(other)
PHP函数库(other) Session函数: session_abort — Discard session array changes and finish session session_ab ...
- 基于DES算法加密的防撞库密码系统项目总结
项目内容:基于DES算法加密的防撞库密码系统 小组名:zqhzkzkj 目标:1.对用户输入的8位字符进行DES加密,要求用户输入8位密钥 2.对于不同的网站,不同的用户名生成不同的密码 小组成员:周 ...
随机推荐
- ZPL Viewer工具网站
新上线的ZPL Viewer工具网站 大家好! 在工作中,我们经常需要设计和预览ZPL(Zebra Programming Language)文件.以前,我一直使用ZPL Design这类工具,但后来 ...
- quartz监控日志(二)添加监听器
上一章介绍监控job有三种方案,其实还有一个简单方案是实现quartz的TriggerListener. 上次我也试了这个方案,但是由于操作错误,导致没有监控成功,所以才选择分析源码来实现代理进行监控 ...
- 关于封装axios报错Cyclic dependency的问题
在npm start的时候直接报错Cyclic dependency循环依赖 JS 循环依赖 (require cycle)_腾飞日记-CSDN博客_js循环依赖 可以看上面的博文了解一下这个错大概在 ...
- 如何使用 Shebang
什么是 Shebang? 简单来说,就是你在脚本开头看到的这个: #!/usr/bin/bash Shebang(也称为 hash-bang.pound-bang 或者 bang)是一个作为脚本文件中 ...
- 使用win-acme在windows+iis服务器下配置自动续期SSL证书【转】
发现阿里云免费证书只有3个月有效期了,手动操作太麻烦,咨询阿里云客服,阿里云说这是大势所趋,遂转向其他云,后来发现百度云还有1年的免费证书,继续问阿里云客服,其他友商都还在免费1年的,为啥阿里云免费的 ...
- mysql vs mongodb
Comments MongoDB 是NoSQL 数据库,适合存JSON格式数据,MySQL是关系型数据库,适合存table格式数据 MongoDB扩展性更好,MySQL支持主从和cluster但是感觉 ...
- 2023/11/16 NOIP 模拟赛
T1 基于1的算术 标签 暴力枚举 思路1 赛时想了个假的 DP,只拿了 77 分,,, 小于 \(10^{15}\) 的仅由 \(1\) 组成的数只有 \(15\) 个,直接枚举即可. 想了一个做法 ...
- 【论文解读】transformer小目标检测综述
一.简要介绍 Transformer在计算机视觉领域迅速普及,特别是在目标识别和检测领域.在检查最先进的目标检测方法的结果时,我们注意到,在几乎每个视频或图像数据集中,transforme ...
- bfs与dfs ,全球变暖——蓝桥problems178
问题描述: ....... .##.... .##.... ....##. ..####. ...###. ....... 有一张还以N*N的像素照片,"."表示海洋," ...
- Unity中的光源类型(向前渲染路径进行光照计算)
Unity中的光源类型 Unity中共支持4种光源类型: 平行光 点光源 聚光灯 面光源(在光照烘焙时才可以发挥作用) 光源的属性: 位置 方向(到某个点的方向) 颜色 强度 衰减(到某个点的衰减) ...