当前位置:网站首页>什么是区块哈希竞猜游戏系统开发?哈希竞猜游戏系统开发(案例成熟)
什么是区块哈希竞猜游戏系统开发?哈希竞猜游戏系统开发(案例成熟)
2022-07-04 18:45:00 【VC_MrsFu123】
01.Hash函数
单向散列函数,又称单向Hash函数、杂凑函数,就是把任意长度的输入消息串变化成固定长的输出串且由输出串难以得到输入串的一种函数。这个输出串称为该消息的散列值。一般用于产生消息摘要,密钥加密等。
哈希算法广泛应用于很多场景,例如安全加密和数据结构中哈希表的查找,布隆过滤器和负载均衡(一致性哈希)等等。
02.常见的Hash函数
常见Hash函数有MD系列、SHA系列、MAC和CRC等。
MD系列
MD全称Message Digest,按照规范版本分为MD2、MD4、MD5三种算法,目前最常用的是MD5版本算法。
MD4算法
1990年,在MD2基础上发展出MD4算法。
MD5算法
1991年,MD4的创始人开发出MD5算法。不管多长的字符串,使用MD5计算后长度都是一样长,方便平时信息的统计和管理。
经过MD5加密生成一个固定长度为128bit的串。因为128位0和1的二进制串表达不友好,因此转化为了16进制,128/4=32位的16进制。将32位去掉前8位和后8位得到的是16位。因此会有MD5的32位和16位加密说法。
SHA系列
SHA(Security Hash Algorithm)是美国的NIST和NSA设计的一种标准的Hash算法,SHA用于数字签名的标准算法的DSS中,也是安全性很高的一种Hash算法。
SHA-1
SHA-1算法的输入消息长度小于264bit,最终输出的结果值是160 Bits,SHA-1与MD4相比较而言,主要增加了扩展变换,将前一轮的输出也加到了下一轮,这样增加了雪崩效应,而且由于其160 Bits的输出,对穷举攻击更具有抵抗性。
大致实现过程:将消息摘要转换成位字符串,对转换后的位字符串进行补位操作,附加长度值并且初始化缓存,然后计算消息摘要。
SHA-256
SHA-256算法输入报文的最大长度不超过264 Bits,输入按512 Bits分组进行处理,产生的输出是一个256 Bits的报文摘要。
SHA-2的其他衍生算法
包括SHA-224、SHA-256、SHA-384、SHA-512,这些版本共同构成了SHA大家庭。
SHA-224:SHA-256的“阉割版”,可以生成长度224bit的信息摘要。
SHA-512:可以生成长度512bit的信息摘要。
SHA-384:SHA-512的“阉割版”,可以生成长度384bit的信息摘要。
SHA家族的最新成员SHA-3已经于2015年问世。
MAC
MAC算法(Message Authentication Codes)带秘密密钥的Hash函数。
MAC算法有两种形式,分别是CBC-MAC算法和HMAC算法。在HTTP中应用最多的MAC算法是HMAC算法。
HMAC(Hash-based Message Authentication Code)算法使用Hash算法作为加密基元,HMAC结合Hash算法有多种变种,比如HMAC-SHA-1、HMAC-SHA256、HMAC-SHA512。不要误以为HMAC算法就是Hash算法加上一个密钥,HMAC算法只是基于Hash算法的,内部的实现还是相当复杂的。
CRC
CRC(Cyclic Redundancy Check):循环冗余检验。是一种根据网上数据包或计算机文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。生成的数字在传输或者存储之前计算出来并且附加到数据后面,然后接收方进行检验确定数据是否发生变化。一般来说,循环冗余校验的值都是32位的整数。由于本函数易于用二进制的计算机硬件使用、容易进行数学分析并且尤其善于检测传输通道干扰引起的错误,因此获得广泛应用。
列表(Hash table,也叫哈希表)是一种查找算法,与链表、树等算法不同的是,散列表算法在查找时不需要进行一系列和关键字(关键字是数据元素中某个数据项的值,用以标识一个数据元素)的比较操作。
散列表算法希望能尽量做到不经过任何比较,通过一次存取就能得到所查找的数据元素,因而必须要在数据元素的存储位置和它的关键字(可用key表示)之间建立一个确定的对应关系,使每个关键字和散列表中一个唯一的存储位置相对应。因此在查找时,只要根据这个对应关系找到给定关键字在散列表中的位置即可。这种对应关系被称为散列函数(可用h(key)表示)。
用的构造散列函数的方法有:
(1)直接定址法:取关键字或关键字的某个线性函数值为散列地址。即:h(key)=key或h(key)=a*key+b,其中a和b为常数。
(2)数字分析法
(3)平方取值法:取关键字平方后的中间几位为散列地址。
(4)折叠法:将关键字分割成位数相同的几部分,然后取这几部分的叠加和作为散列地址。
(5)除留余数法:取关键字被某个不大于散列表表长m的数p除后所得的余数为散列地址,即:h(key)=key MOD p p≤m
(6)随机数法:选择一个随机函数,取关键字的随机函数值为它的散列地址,即:h(key)=random(key)
所以构造一个好用的散列表,最重要的是做好以下两件事情:
设计一个"好"的散列函数来计算Key值。(好的哈希函数应尽可能避免冲突的出现,而且计算时应尽可能简洁快速)
What is a block hash?
The block hash value is the DNA of a piece of data,and each block hash value is unique,random and unbreakable."Hashfun"is hello DAPP,the SK application launched by fun blockchain ecology in the gamefi stage,has a mission to implement the"interesting investment and mining"mechanism and attract millions of Genesis residents.
What is blockchain?
In essence,blockchain is a shared database of data or information stored in it.It has the characteristics of unforgeability,full trace,traceability,openness and transparency,collective maintenance,etc
边栏推荐
- Integritee通过XCM集成至Moonriver,为其生态系统带来企业级隐私解决方案
- 软件客户端数字签名一定要申请代码签名证书吗?
- In operation (i.e. included in) usage of SSRs filter
- Cann operator: using iterators to efficiently realize tensor data cutting and blocking processing
- Key rendering paths for performance optimization
- 1005 spell it right (20 points) (pat a)
- 【ISMB2022教程】图表示学习的精准医疗,哈佛大学Marinka Zitnik主讲,附87页ppt
- 【毕业季】绿蚁新醅酒,红泥小火炉。晚来天欲雪,能饮一杯无?
- How to adapt your games to different sizes of mobile screen
- repeat_ P1002 [NOIP2002 popularization group] cross the river pawn_ dp
猜你喜欢
实战模拟│JWT 登录认证
JVM系列之对象的创建
解密函数计算异步任务能力之「任务的状态及生命周期管理」
How is the entered query SQL statement executed?
【深度学习】一文看尽Pytorch之十九种损失函数
记一次 .NET 某工控数据采集平台 线程数 爆高分析
YOLOv5s-ShuffleNetV2
B2B mall system development of electronic components: an example of enabling enterprises to build standardized purchase, sale and inventory processes
node强缓存和协商缓存实战示例
Every time I look at the interface documents of my colleagues, I get confused and have a lot of problems...
随机推荐
Dynamic memory management
Dark horse programmer - software testing - stage 07 2-linux and database -09-24-linux command learning steps, wildcards, absolute paths, relative paths, common commands for files and directories, file
Template_ Large integer subtraction_ Regardless of size
Six stones programming: about code, there are six triumphs
MySQL中的日期时间类型与格式化方式
kotlin 循环控制
2022 version of stronger jsonpath compatibility and performance test (snack3, fastjson2, jayway.jsonpath)
Anhui Zhong'an online culture and tourism channel launched a series of financial media products of "follow the small editor to visit Anhui"
Wireshark network packet capture
#夏日挑战赛#带你玩转HarmonyOS多端钢琴演奏
[QNX hypervisor 2.2 user manual]6.3.1 factory page and control page
[today in history] July 4: the first e-book came out; The inventor of magnetic stripe card was born; Palm computer pioneer was born
Kotlin condition control
CANN算子:利用迭代器高效实现Tensor数据切割分块处理
[QNX Hypervisor 2.2用户手册]6.3.1 工厂页和控制页
【深度学习】一文看尽Pytorch之十九种损失函数
Actual combat simulation │ JWT login authentication
凌云出海记 | 沐融科技&华为云:打造非洲金融SaaS解决方案样板
更强的 JsonPath 兼容性及性能测试之2022版(Snack3,Fastjson2,jayway.jsonpath)
Write it down once Net analysis of thread burst height of an industrial control data acquisition platform