哈希算法

哈希算法

哈希算法:

把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。

简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

python中用于获取一个对象(字符串/数字)的哈希值

1 >>>hash('test')            # 字符串
2 2314058222102390712
3 >>> hash(1)                 # 数字
4 1
5 >>> hash(str([1,2,3]))      # 集合
6 1335416675971793195
7 >>> hash(str(sorted({'1':1}))) # 字典
8 7666464346782421378
9 >>>

在 hash() 对对象使用时,所得的结果不仅和对象的内容有关,还和对象的 id(),也就是内存地址有关。

 1 class Test:
 2     def __init__(self, i):
 3         self.i = i
 4 for i in range(10):
 5     t = Test(1)
 6     print(hash(t), id(t))
 7 #输出结果
 8 (277855628, 4445690048)
 9 (277855637, 4445690192)
10 (277855628, 4445690048)
11 (277855637, 4445690192)
12 (277855628, 4445690048)
13 (277855637, 4445690192)
14 (277855628, 4445690048)
15 (277855637, 4445690192)
16 (277855628, 4445690048)
17 (277855637, 4445690192)

一种用途:

hash() 函数的对象字符不管有多长,返回的 hash 值都是固定长度的,也用于校验程序在传输过程中是否被第三方(木马)修改,

如果程序(字符)在传输过程中被修改hash值即发生变化,如果没有被修改,则 hash 值和原始的 hash 值吻合,

只要验证 hash 值是否匹配即可验证程序是否带木马(病毒)。

1 name1='正常程序代码'
2 name2='正常程序代码带病毒'
3 print(hash(name1)) # 2403189487915500087
4 print(hash(name2)) # -8751655075885266653

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2770.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 计算机信息计量单位kgm,工程单位换算表.pdf

    计算机信息计量单位kgm,工程单位换算表.pdf工程单位换算表流量计|论文|工程单位换算表流量计:蒸汽流量计|污水流量计|明渠式流量计|电磁流量计|靶式流量计|涡街|涡轮|流量积算仪产品信息样本下载调查问卷论坛留言关于我们产品价格招聘买马技术资料…

    2022年5月14日
    77
  • 想修改CSS

    想修改CSS

    2021年7月23日
    55
  • 012路规律怎么看_双元素集合怎么判断

    012路规律怎么看_双元素集合怎么判断堆题目链接将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:x is the root:x是根结点;x and y are siblings:x和y是兄弟结点;x is the parent of y:x是y的父结点;x is a child of y:x是y的一个子结点。输入格式:每组测试第1行包含2个正整数N(≤ 1000)和M(≤ 20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间[−10000,10000]内的N个要被

    2022年8月9日
    9
  • Tomcat 服务详解[通俗易懂]

    Tomcat 服务详解[通俗易懂]文章目录一、简介一、简介  Tomcat是一款免费、开放源代码的Web应用服务器,是Apache软件基金会的一个核心开源项目,属于轻量级应用服务器。官网:https://tomcat.apache.org/

    2022年5月16日
    45
  • 第一次有人把“分布式事务”讲的这么简单明了

    第一次有人把“分布式事务”讲的这么简单明了

    2022年2月10日
    46
  • 音乐播放器之QQ音乐最新api,亲测可用「建议收藏」

    音乐播放器之QQ音乐最新api,亲测可用「建议收藏」大家好,前段时间重写了自己的音乐播放器,源码放在github上,源码地址和项目地址下面都有,如果喜欢记得star一下哈。由于之前给大家分享的api虽然可以用,但是版本太旧了,很多也没有了歌词,今天博主给大家分享一个最新的qq音乐api,亲测可用,话不多说直接上代码最新音乐leturl=’https://c.y.qq.com/v8/fcg-bin…

    2022年6月26日
    53

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号