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

    浏览量

    29854
  • python
    +关注

    关注

    56

    文章

    4832

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

    Arm亮相2025年游戏开发者大会

    近日,成千上万的人聚集在美国旧金山的马斯康尼中心参加 2025 年游戏开发者大会 (GDC 2025)。全球开发者齐聚一堂,探讨如何利用技术塑造手游的未来。鉴于 99% 的高端智能手机均基于 Arm 技术打造,Arm 持续在提供
    的头像 发表于 04-01 13:51 ?634次阅读

    路赋能游戏鸿蒙化适配,鸿蒙游戏开发者服务焕新升级

    3月14日,华为游戏中心在成都开展了鸿蒙游戏开发者服务日线下活动。本次活动吸引了百余位游戏厂商代表以及开发者参与。华为一线技术专家团队与众多
    的头像 发表于 03-17 09:25 ?507次阅读
    全<b class='flag-5'>链</b>路赋能<b class='flag-5'>游戏</b>鸿蒙化适配,鸿蒙<b class='flag-5'>游戏</b><b class='flag-5'>开发</b>者服务焕新升级

    亚马逊云科技推出Amazon GameLift Streams助力开发者实现游戏全平台跨设备串流

    亚马逊云科技全新功能可助力游戏开发者触达全球更多玩家,拓展变现机会并提升收入 ? 北京 ——2025 年 3 月 13 日 亚马逊云科技宣布推出全托管游戏串流解决方案Amazon GameLift
    发表于 03-13 13:36 ?226次阅读

    如何安装模拟器玩nes小游戏-基于米尔瑞芯微RK3576开发

    本篇源自:优秀创作者 小手凉凉本文将介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞芯微 RK3576开发板)的安装模拟器玩nes小游戏方案测试。 核心板系统 操作系统镜像文件说明
    发表于 02-08 12:10

    Google Play全面助力出海游戏开发

    2024 年毫无疑问是中国开发者们再获成功的一年!我们和大家一起庆祝了今年收获的成果,也并肩展望了电子游戏美好的未来。在 Google Play Partner Day 游戏专题演讲中,我们从各个
    的头像 发表于 01-15 11:32 ?742次阅读

    MediaTek与知名游戏引擎开发商Cocos达成深度合作

    为带给开发者和用户智能互动新体验, MediaTek 与知名游戏引擎开发商 Cocos 达成深度合作,将 MediaTek 端侧生成式 AI 领域的前沿技术,与 Cocos 在游戏
    的头像 发表于 01-10 13:48 ?470次阅读

    联发科技携手Cocos共建端侧生成式AI游戏开发生态,推动行业升级

    全球领先的半导体公司联发科技与知名游戏引擎开发商Cocos正式宣布达成深度合作!这一合作将把联发科技在端侧生成式AI领域的尖端技术,与Cocos在游戏开发领域的深厚积累深度结合,为
    的头像 发表于 01-10 09:24 ?520次阅读

    FPGA打砖块小游戏设计思路

    HDL,?Vivado 平台上开发打砖块小游戏并使用 PS2 与 VGA 的基本思路: 一、整体架构设计 1. 输入模块: ? PS2 接口模块:负责与 PS2 设备(如游戏手柄)进行通信,接收手柄
    的头像 发表于 12-09 16:57 ?1071次阅读

    ChatGPT 在游戏开发中的创新应用

    游戏开发领域,人工智能技术的应用正变得越来越广泛。ChatGPT,作为一种先进的自然语言处理(NLP)模型,为游戏开发带来了许多创新的应用。 1. 动态对话系统 ChatGPT的强项
    的头像 发表于 10-25 18:05 ?1440次阅读

    苹果正开发与App Store相似的新游戏应用程序

    10月23日讯,据最新媒体报道,苹果正加大对游戏领域的投入,并着手开发一款与App Store相似的新游戏应用程序。   这款新应用将整合App Store与Game Center的功能,设计有多个选项卡,包括“立即玩”(
    的头像 发表于 10-23 13:40 ?871次阅读

    2024 VDC游戏生态分会场:共创共赢,开启游戏新篇章

    2024年vivo开发者大会(VDC)在广东深圳于10月10日顺利召开,大会以“同心·同行”为主题 ,设有1个主会场和8个分会场。在游戏生态分会场中,vivo向游戏开发者、行业专家、生
    发表于 10-12 14:37 ?463次阅读
    2024 VDC<b class='flag-5'>游戏</b>生态分会场:共创共赢,开启<b class='flag-5'>游戏</b>新篇章

    恒讯科技分析:使用显卡云服务器进行游戏开发有哪些优势和劣势?

    使用显卡云服务器进行游戏开发具有一系列的优势和劣势: 一、优势: 1、高性能计算:显卡云服务器基于GPU的架构提供了强大的并行处理能力,这对于游戏开发中的图形渲染、物理模拟和人工智能等
    的头像 发表于 09-04 13:20 ?718次阅读