阐述:one wiex壹维克斯平台逻辑系统开发项目模式方案

简介: 阐述:one wiex壹维克斯平台逻辑系统开发项目模式方案

FNV-1算法过程如下:

hash = offset_basis
for each octet_of_data to be hashed
hash = hash * FNV_prime
hash = hash xor octet_of_data
return hash

参数说明(以32位结果为例,其它长度同理):

所有的参数,除了octet_of_data之外,都是32位无符号整型,即hash、offset_basis、FNV_prime类型都是32位无符号整型;
octet_of_data的类型是8位无符号整型;
32位的offset_basis值为2166136261=0x811c9dc5,FNV_prime值为2^24 + 2^8 + 0x93 = 16777619,其它参数可以查看FNV的维基百科主页;
算法循环的次数等于输入的字节长度;
算法的相乘部分,因为hash类型是32位无符号整型,故相乘结果需要mod 2^32;
算法的异或部分,octet_of_data为32位值的低8位,其它三个字节不进行异或运算。
举例:

输入“V”,对应的十六进制值为0x56,输出32位的FNV hash值为0x050c5d49。可以使用在线工具得到结果。

计算过程:

初始化:hash = 2166136261
进入循环,因为要求的数据长度只有一个字节长度,故循环只有一次。因为hash结果为32位无符号整型,故需要舍弃高位,保留低32位:hash = (2166136261 * 16777619) mod 2^32 = 0x050c5d1f
进行异或运算,首先将0x56转化为32位的值0x00000056,然后才能进行异或运算:hash = 0x050c5d1f xor 0x00000056 = 0x050c5d49
也可以点击参考资料中的FNV函数Go代码更加深刻地理解上述计算过程。

FNV-1a
FNV-1a算法过程如下:

hash = offset_basis
for each octet_of_data to be hashed
hash = hash xor octet_of_data
hash = hash * FNV_prime
return hash

可以发现,FNV-1a算法只是将相乘和异或运算进行了顺序调换,其它过程和参数与FNV-1相同。

FNV-0
FNV-0算法过程如下:

hash = 0
for each octet_of_data to be hashed
hash = hash * FNV_prime
hash = hash XOR octet_of_data
return hash

参考资料
FNV Hash:详细介绍FNV算法的网站。在该网站上可以找到该算法的历史,应用以及源码等资料。
Fowler–Noll–Vo hash function:FNV算法的维基百科主页。
Source file src/hash/fnv/fnv.go:FNV函数的Go语言实现代码,可以更加深入理解FNV算法过程。

相关文章
|
存储 前端开发 JavaScript
潮玩宇宙大逃杀无聊猿卷轴模式系统开发详细规则丨步骤需求丨方案项目丨技术架构丨源码功能
确定游戏类型和规则:明确无聊猿卷轴模式游戏类型和游戏规则,包括敌人类型、地图设计、任务类型、战斗机制等。
|
测试技术 数据库 安全
带你读《C++代码整洁之道:C++17 可持续软件开发模式实践》之二:构建安全体系
如果想用C++语言编写出易维护的、扩展性良好的以及生命力强的软件,那么,对于所有的软件开发人员、软件设计人员、对现代C++代码感兴趣或想降低开发成本的项目领导者来说,本书都是必需品。如果你想自学编写整洁的C++代码,那么本书也是你需要的。本书旨在通过一些示例帮助各个技术层次的开发人员编写出易懂的、灵活的、可维护的和高效的C++代码。即使你是一名资深的开发工程师,在本书中也可以找到有价值的知识点。
|
4月前
|
缓存 前端开发 测试技术
什么是七星创客系统丨七星创客系统开发规则玩法/设计方案/逻辑需求/案例项目/源码功能
七星创客系统开发指南是一个帮助开发人员理解并完成七星创客系统的开发任务的指南。以下是一个简要的开发指南需求:
|
4月前
|
开发框架 缓存 监控
美丽天天秒丨链动2+1模式系统开发规则流程/功能设计/需求方案/成熟案例/源码指南
开发美丽天天秒丨链动2+1系统的流程可以按照以下步骤进行:
|
6月前
|
新零售 搜索推荐 大数据
二二复制公排系统开发|成熟案例|项目原理
新零售的意思是应用新互联网技术和新思维的活动
|
新零售 人工智能 供应链
七星创客/艾倍生/推三返一/系统开发方案项目/开发案例/规则玩法/源码程序
  所谓新零售即是个人、企业以互联网为依托,通过运用大数据、人工智能等先进技术手段,对商品的生产、流通与销售过程进行升级改造,进而重塑业态结构与生态圈,并对线上服务、线下体验以及现代物流进行深度融合的零售新模式。
|
6月前
|
自然语言处理 监控 搜索推荐
佛萨奇2.0/3.0Metaforce原力元宇宙系统开发步骤逻辑丨方案项目丨案例设计丨成熟技术丨源码功能
佛萨奇(VoZaChi)是一个虚拟助手系统,其发展至2.0和3.0版本会有一些特定需求和逻辑
|
存储 安全
DAPP/3M互助拆分公排双轨系统开发详细逻辑/案例分析/方案项目/技术分析/源码平台
 DApp是指基于区块练技术的去中心化应用程序,它的特点是去中心化、透明、安全、不可篡改等特点。
|
开发框架 负载均衡 安全
闲话SAAS系统设计-概述
闲话SAAS系统设计-概述
293 0
闲话SAAS系统设计-概述
|
区块链
3M互助智能合约开发稳定版丨3M互助智能合约系统开发(玩法规则)/成熟案例/源码功能/案例项目/方案设计
 Smart contract DApp is the core technology for decentralized applications(DApp)using blockchain technology.The so-called smart contract refers to a smart contract system that automatically executes computer programs written in the form of digital code,realizing the automatic execution and managemen