哈希算法

哈希算法

哈希算法:

把任意长度的输入(又叫做预映射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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • UnityShader-BilateralFilter(双边滤波,磨皮滤镜)「建议收藏」

    UnityShader-BilateralFilter(双边滤波,磨皮滤镜)「建议收藏」双边滤波(BilateralFilter),可能没有高斯滤波那样著名,但是如果说磨皮滤镜,那肯定是无人不知无人不晓了,用双边滤波就可以实现很好的皮肤滤镜效果,不管脸上有多少麻子,用完双边滤波,瞬间变身白富美。

    2022年7月22日
    34
  • python小游戏实现代码

    python小游戏实现代码早上逛CSDN首页就见到这么一篇教程。看了一下很有意思,就马上动手实现了一下。看看效果吧:完整代码:#-*-coding:utf-8-*-#1-Importlibraryimport

    2022年7月5日
    21
  • MATLAB 2017b 安装教程 (推荐)

    MATLAB 2017b 安装教程 (推荐)MATLAB2017b安装教程matlab2017b安装包及安装教程链接:https://pan.baidu.com/s/1riEvbTQnDSeo7bhix7YLZQ密码:z4em本Markdown编辑器使用[Sta**重点内容**ckEdit][6]修改而来,用它写博客,将会带来全新的体验哦:Matlab安装教程:1、下载文件,得到破解文件。*点…

    2022年5月28日
    51
  • Nginx+FastCGI到底是谁影响超时时间[通俗易懂]

    Nginx+FastCGI到底是谁影响超时时间

    2022年2月17日
    49
  • Ice笔记–Ice的服务器实现技术[通俗易懂]

    Ice笔记–Ice的服务器实现技术[通俗易懂]服务器实现技术 1.      渐进的初始化如果我们使用servant定位器,locate返回的servant只能用于当前请求,也就是说Iceruntime不会把这个servant增加到ActiveServantMap中。一种常用的实现技术是,在loca

    2022年6月5日
    26
  • 2013-2019年百度搜索算法规则解读与应对

    2013-2019年百度搜索算法规则解读与应对2013-2019年百度搜索算法规则解读影响与建议百度冰桶算法百度冰桶算法1.0——》算法自2014年8月30日上线  主要打击移动端网站强行用户下载APP、用户登陆才能继续使用和大面积的广告覆盖行为,影响用户的浏览体验,尤其以必须下载app才能正常使用的站点。百度冰桶算法2.0——-》算法自2014年11月18日上线  主要打击移动端手机广告遮挡屏幕浏览,…

    2022年5月17日
    40

发表回复

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

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