0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

区块哈希游戏开发逻辑(上链)哈希竞猜游戏开发

a1271916008 来源:a1271916008 作者:a1271916008 2022-06-02 11:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

什么是哈希/ Hash

哈希又称作“散列”,是一种数学计算机程序,它接收任何一组任意长度的输入信息,通过哈希算法变换成固定长度的数据指纹输出形式,如字母和数字的组合,该输出就是“哈希值”。

总体而言,哈希算法可理解为一种消息摘要算法,将消息或数据压缩变小并拥有固定格式。由于其单向运算具有一定的不可逆性,哈希算法已成为加密算法中一个构成部分,但完整的加密机制不能仅依赖哈希算法。

在一个cache系统中,需要实现一个域名白名单,域名为下列数据:
、、sohu.com 等
该白名单需要在程序启动时加载一次,主要执行查询操作。请设计一个数据结构和相应的初始化查询函数,使得检索尽可能的快。(不能使用stl::map,等等key-value刑类库)。

我们可以看到,该题目提出了字符串的快速查找,并且只加载一次。使用Hash比较好。

我们可能首先就是想到使用 C++ 中的 MAP ,题目中给出了不允许使用MAP,那么肯定第二选择就是使用Berkeley DB (DB)这种的文件数据库了,但是题目中明显提出不允许使用key-value类型库。

我们思考Berkeley DB (DB)的原理可以晓得,这个就是一个Hash的过程,map其实也是hash的思想。

自己设计一个hash系统咯。冲突处理…

字符串hash可能就想到使用ELFhash算法,主要分析下ELFHash算法。

ELFhash函数在UNIX系统V 版本4中的“可执行链接格式”( Executable and Linking Format,即ELF )中会用到,ELF文件格式用于存储可执行文件与目标文件。ELFhash函数是对字符串的散列。它对于长字符串和短字符串都很有效,字符串中每个字符都有同样的作用,它巧妙地对字符的ASCII编码值进行计算,ELFhash函数对于能够比较均匀地把字符串分布在散列表中。

这些函数使用位运算使得每一个字符都对最后的函数值产生影响。

// ELF Hash Function

unsignedintELFHash(char*str)

{

unsignedinthash = 0;

unsignedintx= 0;

while(*str)

{

hash = (hash << 4) + (*str++);//hash左移4位,当前字符ASCII存入hash低四位。 

if((x = hash & 0xF0000000L) != 0)

{//如果最高的四位不为0,则说明字符多余7个,如果不处理,再加第九个字符时,第一个字符会被移出,因此要有如下处理。

//该处理,如果对于字符串(a-z或者A-Z)就会仅仅影响5-8位,否则会影响5-31位,因为C语言使用的算数移位

hash ^= (x >> 24);

//清空28-31位。

hash &= ~x;

}

}

//返回一个符号位为0的数,即丢弃最高位,以免函数外产生影响。(我们可以考虑,如果只有字符,符号位不可能为负)

return(hash & 0×7FFFFFFF);

}

常见哈希算法

目前常见的 Hash 算法包括国际上的 Message Digest( MD) 系列和 Secure Hash Algorithm( SHA) 系列算法,以及国内的 SM3 算法。

其中,SHA 256 是 SHA 系列算法之一,由美国国安局设计、美国国家标准与技术研究院发布的一套哈希算法,由于其摘要长度为 256bits,故称 SHA 256。SHA 256也是保护数字信息的最安全的方法之一。

例如计算

“hello blockchain world, this is yeasy@github”的SHA-256 Hash值,

得到的结果将是

“db8305d71a9f2f90a3e118a9b49a4c381d2b80cf7bcef81930f30ab1832a3c90”。

对于某个文件,无需查看原始内容,只要其 SHA-256 Hash 计算后结果相同,则说明该文件内容极大概率就是一样的。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 逻辑
    +关注

    关注

    2

    文章

    834

    浏览量

    30206
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90417
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    量子计算即将彻底改变AR和VR游戏领域

    量子计算常被视为解决科学、技术和工程领域复杂问题的利器,人们往往只关注其最前沿的应用。虽然这种增强的问题解决能力是量子计算应用开发的关键方面,但这类计算机还能推动更具艺术性和想象力的应用发展。游戏
    的头像 发表于 04-17 10:19 635次阅读

    2022全新版!Java分布式架构设计与开发实战(完结)

    2022全新版!Java分布式架构设计与开发实战(完结) 分库分表实战:Java海量数据存储架构设计 在现代互联网应用中,随着业务规模的指数级增长,数据库性能瓶颈已成为制约系统发展的关键因素。当单
    发表于 03-30 15:20

    OPC UA 服务端用户认证的底层逻辑哈希与加盐应用详解

    摘要在基于UnifiedAutomationSDK开发OPCUA服务端时,用户认证(UserAuthentication)是安全体系的第一道防线。除了传输层的加密通道外,服务端如何安全地存储和验证
    的头像 发表于 01-15 17:29 388次阅读
    OPC UA 服务端用户认证的底层<b class='flag-5'>逻辑</b>:<b class='flag-5'>哈希</b>与加盐应用详解

    为云游戏打造定制显卡

    适用于云游戏独特的经济模型。云游戏的盈利能力依赖于在保持高质量用户体验的前提下,每颗GPU能支持的高并发用户数量。对于正在开发游戏硬件的公司而言,选择合适的GPUI
    的头像 发表于 12-04 11:29 730次阅读
    为云<b class='flag-5'>游戏</b>打造定制显卡

    将经典射击游戏移植到芯科科技MG24 Matter开发

    开发板之后,我们迎来了新的挑战:将另一款经典第一人称射击游戏-毁灭公爵3D(Duke Nukem 3D)的完整体验带到我们的超低功耗平台MG24的开发,以实现包括
    的头像 发表于 11-30 10:46 1339次阅读
    将经典射击<b class='flag-5'>游戏</b>移植到芯科科技MG24 Matter<b class='flag-5'>开发</b>板

    客户案例 | 《星际迷航OL》开发商 Cryptic Studios 携手 Splashtop,以高性能远程方案赋能全球游戏开发

    CrypticStudios是一家全球知名的游戏开发商,专注于为PC及主机平台打造大型多人在线角色扮演游戏,代表作品包括《无冬Online》《星际迷航Online》《冠军在线》等。凭借精湛的画面表现
    的头像 发表于 11-21 17:00 2278次阅读
    客户案例 | 《星际迷航OL》<b class='flag-5'>开发</b>商 Cryptic Studios 携手 Splashtop,以高性能远程方案赋能全球<b class='flag-5'>游戏</b><b class='flag-5'>开发</b>

    Molex OTS零哈希电缆组件技术解析与应用指南

    Molex现成(OTS)零哈希电缆组件是标准分立式电线电缆组件,设计用于应对电子设备日益缩小的挑战。这些电缆组件提供节省空间的薄型解决方案,具有创新的双点接触特性,有2、4、6和8电路尺寸可供选择
    的头像 发表于 11-17 16:44 960次阅读

    termux调试python猜数字游戏

    安装编辑器增强建议: ```bash pkg install vim# 替代nano ``` 3. 如需打包成APK,可使用Termux-API工具 > 通过本方案,你可在Android设备随时运行经典猜数字游戏
    发表于 08-29 17:15

    termux如何搭建python游戏

    termux如何搭建python游戏 Termux搭建Python游戏开发环境的完整指南 一、Termux基础环境准备 Termux是一款无需root即可在安卓设备运行的L
    发表于 08-29 07:06

    AI Coding + TuyaOpen,1小时快速打造AI女友和2048游戏

    TuyaOpen开发框架+AICoding工具,不用自己写一行代码,只要1小时就能成功DIY!话不多说,先看效果:如果按照传统的开发路子,技术小白要想在硬件实现一个
    的头像 发表于 08-21 18:53 2109次阅读
    AI Coding + TuyaOpen,1小时快速打造AI女友和2048<b class='flag-5'>游戏</b>

    基于DE1-SOC开发板的太空射击游戏

    今天继续常春藤名校之一——康奈尔大学的FPGA课程ECE 5760典型案例分享:基于DE1-SOC开发板的太空射击游戏
    的头像 发表于 08-04 10:47 3963次阅读
    基于DE1-SOC<b class='flag-5'>开发</b>板的太空射击<b class='flag-5'>游戏</b>

    哈希极化到零拥塞:主动路径规划在RoCE网络中的负载均衡实践

    智算集群对网络性能,特别是高吞吐、低延迟和无损特性有着严苛要求,RoCE因此被广泛应用。然而,在主流Clos组网架构下,传统的ECMP路由机制存在天然的局限性,容易引发哈希极化问题,成为制约
    的头像 发表于 07-21 17:27 2204次阅读
    从<b class='flag-5'>哈希</b>极化到零拥塞:主动路径规划在RoCE网络中的负载均衡实践

    【VisionFive 2单板计算机试用体验】VisionFive 2一个霸气的游戏

    这次的测试活动,每人人手送一个游戏机,非常的好啊!!! 很高兴收到赛昉科技发放的VisionFive 2开发板,VisionFive 2是全球首款集成了3D GPU的高性能量产RISC-V
    发表于 07-13 20:41

    Windows盯上游戏,要做第一平台

    电子发烧友网综合报道,日前,微软确认将继续与芯片公司 AMD 共同开发新一代 Xbox 游戏硬件。微软 Xbox 部门总裁莎拉・邦德宣布,微软与 AMD 已经达成 “多年战略合作”,双方将共同开发
    的头像 发表于 06-23 02:54 3627次阅读

    鸿蒙5开发宝藏案例分享---一多开发实例(游戏

    十年前藏的现金一样惊喜!)这些藏在文档深处的\"武功秘籍\",能帮我们轻松实现分布式游戏、跨端协同这些听起来很酷的功能。快上车,带你解锁鸿蒙开发的正确姿势! 一、分布式游戏手柄
    发表于 06-03 18:22