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

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

3天内不再提示

Hash哈希竞猜游戏系统开发方案(逻辑分析)详情

開发Whi366 来源:開发Whi366 作者:開发Whi366 2022-06-28 16:27 次阅读

Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,l8l开28O9发2756系统所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

HASH函数(计算机算法领域)

若结构中存在和关键字K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。

对不同的关键字可能得到同一散列地址,即key1≠key2,而f(key1)=f(key2),这种现象称碰撞。具有相同函数值的关键字对该散列函数来说称做同义词。综上所述,根据散列函数H(key)和处理冲突的方法将一组关键字映象到一个有限的连续的地址集(区间)上,并以关键字在地址集中的"象"作为记录在表中的存储位置,这种表便称为散列表,这一映象过程称为散列造表或散列,所得的存储位置称散列地址。

若对于关键字集合中的任一个关键字,经散列函数映象到地址集合中任何一个地址的概率是相等的,则称此类散列函数为均匀散列函数(Uniform Hash function),这就是使关键字经过散列函数得到一个"随机的地址",从而减少冲突。

常用HASH函数

·直接取余法:f(x):=x mod maxM;maxM一般是不太接近2^t的一个质数。

·乘法取整法:f(x):=trunc((x/maxX)*maxlongit)mod maxM,主要用于实数。

·平方取中法:f(x):=(x*x div 1000)mod 1000000);平方后取中间的,每位包含信息比较多。

public class Main{

public static void main(String[]args)throws Exception{

//创建一个MessageDigest实例:

MessageDigest md=MessageDigest.getInstance("SHA-1");

//反复调用update输入数据:

md.update("Hello".getBytes("UTF-8"));

md.update("World".getBytes("UTF-8"));

byte[]result=md.digest();//20 bytes:db8ac1c259eb89d4a131b253bacfca5f319d54f2

System.out.println(new BigInteger(1,result).toString(16));

审核编辑:符乾江

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

    关注

    3

    文章

    3868

    浏览量

    61309
  • 哈希算法
    +关注

    关注

    1

    文章

    56

    浏览量

    10690
收藏 人收藏

    评论

    相关推荐

    康谋方案 | 加速自动驾驶系统开发的技术解决方案

    过程。 ADTF 能在 Windows、Linux 和 ARM 环境中运行配置。它可以实时同步处理多个传感器数据流。集成的测试环境,使得在开发平台中编程的驾驶员辅助和安全功能可以很容易地可视化并进行虚拟测试。 ADTF作为自动驾驶系统开发的技术解决
    的头像 发表于 01-19 15:57 163次阅读
    康谋<b class='flag-5'>方案</b> | 加速自动驾驶<b class='flag-5'>系统开发</b>的技术解决<b class='flag-5'>方案</b>

    QE for AFE嵌入式系统开发的评估工具说明

    电子发烧友网站提供《QE for AFE嵌入式系统开发的评估工具说明.pdf》资料免费下载
    发表于 12-21 10:27 0次下载
    QE for AFE嵌入式<b class='flag-5'>系统开发</b>的评估工具说明

    redis hash底层实现原理

    Redis是一个开源的内存数据库,使用键值对存储数据。其中,Redis中的数据结构之一就是哈希Hash),它提供了一种将多个字段(Field)存储在一个键(Key)中的方法。那么Redis的哈希
    的头像 发表于 12-04 16:27 252次阅读

    嵌入式系统开发资料分享

    电子发烧友网站提供《嵌入式系统开发资料分享.rar》资料免费下载
    发表于 11-10 09:41 0次下载
    嵌入式<b class='flag-5'>系统开发</b>资料分享

    ARM应用系统开发详解——基于S3C4510B的系统设计

    电子发烧友网站提供《ARM应用系统开发详解——基于S3C4510B的系统设计.rar》资料免费下载
    发表于 11-08 15:35 0次下载
    ARM应用<b class='flag-5'>系统开发</b>详解——基于S3C4510B的<b class='flag-5'>系统</b>设计

    基于网络的嵌入式监控系统开发

    电子发烧友网站提供《基于网络的嵌入式监控系统开发.pdf》资料免费下载
    发表于 10-12 10:30 0次下载
    基于网络的嵌入式监控<b class='flag-5'>系统开发</b>

    逻辑分析仪参数有哪些?

    逻辑分析仪参数有哪些? 逻辑分析仪是一种广泛应用于数字电子系统测试的工具。其主要功能是通过对数字信号进行采样和
    的头像 发表于 09-19 16:33 1369次阅读

    逻辑分析仪是干啥用的 逻辑分析仪的主要用途 逻辑分析仪的应用场景

    逻辑分析仪是干啥用的 逻辑分析仪的主要用途 逻辑分析仪的应用场景
    的头像 发表于 09-19 16:03 1925次阅读

    基于Rust语言Hash特征的基础用法和进阶用法

    Rust语言是一种系统级编程语言,具有高性能、安全、并发等特点,是近年来备受关注的新兴编程语言。在Rust语言中,Hash是一种常用的数据结构,用于存储键值对。Rust语言提供了一系列的Hash特征
    的头像 发表于 09-19 16:02 740次阅读

    hash算法在FPGA中的实现(2)

    如何解决冲突了。这里介绍两种常见的设计hash链表的方案。当然,解决hash冲突也不一定就要用链表的方法,还有其他方案
    的头像 发表于 09-07 17:02 410次阅读
    <b class='flag-5'>hash</b>算法在FPGA中的实现(2)

    hash算法在FPGA中的实现(1)

    在FPGA的设计中,尤其是在通信领域,经常会遇到hash算法的实现。hash算法在FPGA的设计中,它主要包括2个部分,第一个就是如何选择一个好的hash函数,减少碰撞;第二个就是如何管理ha
    的头像 发表于 09-07 17:01 601次阅读
    <b class='flag-5'>hash</b>算法在FPGA中的实现(1)

    STM32助力新产品设计提升安全性

    对称加密算法、AES-ECB模式缺陷与解决办法、Hash哈希函数、Hash哈希算法等。
    发表于 09-05 07:40

    Linux内核分析 端口哈希

    是用来封装各种协议的绑定哈希表,具体定义如下所示,这个结构体在[Linux内核角度分析服务器Listen细节中介绍过,具体地,struct inet_bind_hashbcket是bind相关的哈希
    的头像 发表于 07-31 11:03 427次阅读
    Linux内核<b class='flag-5'>分析</b> 端口<b class='flag-5'>哈希</b>桶

    嵌入式Linux系统开发介绍

    Linux 系统开发 基于 linux 操作系统开发我们的产品叫 linux系统开发。此开发的编程方式和裸机
    的头像 发表于 07-27 17:00 837次阅读
    嵌入式Linux<b class='flag-5'>系统开发</b>介绍

    Linux系统开发环境搭建

    今天给大家讲一讲Linux系统开发环境搭建。
    发表于 07-12 14:51 688次阅读
    Linux<b class='flag-5'>系统开发</b>环境搭建