一个账号 发表于 2020-3-13 23:07:39

Python hash() 函数

Python hash() 函数

语法

hash(obj)

参数


参数描述
obj对象


返回值

返回对象的哈希值。

用途

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

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

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

例子

>>> hash("test")
-8637035830407981545
>>> hash("test.")
5031092287746906353
>>> hash(str())   # hash() 函数可以应用于数字、字符串和对象,不能直接应用于 list、set、dictionary。
-3606797123897954227
>>> hash(str({"鱼C工作室" : "fishc.com.cn"}))
845437774857979276

永恒的蓝色梦想 发表于 2020-4-10 18:33:56

本帖最后由 永恒的蓝色梦想 于 2020-4-10 21:13 编辑

一种可能的实现def hash(obj,/):
    if obj.__hash__ is None:
      raise TypeError(f"unhashable type: '{obj.__class__.__name__}'")

    else:
      temp=obj.__hash__()

    if isinstance(obj,int):
      return temp.__hash__()

    else:
      raise TypeError("__hash__ method should return an integer")

_2_ 发表于 2020-4-10 18:44:25

永恒的蓝色梦想 发表于 2020-4-10 18:33


一种可能的实现……

永恒的蓝色梦想 发表于 2020-4-10 18:45:20

_2_ 发表于 2020-4-10 18:44
一种可能的实现……

懒得加了

一个账号 发表于 2020-4-10 19:35:51

_2_ 发表于 2020-4-10 18:44
一种可能的实现……

??

P.S. 你换头像了,我差点没认出来。。。

永恒的蓝色梦想 发表于 2020-4-10 21:05:50

一个账号 发表于 2020-4-10 19:35
??

P.S. 你换头像了,我差点没认出来。。。

他早换了……{:10_327:}

一个账号 发表于 2020-4-10 21:16:02

永恒的蓝色梦想 发表于 2020-4-10 21:05
他早换了……

Ta 又换了一个,你 Ctrl+F5 硬性刷新一下

_2_ 发表于 2020-4-10 22:11:03

一个账号 发表于 2020-4-10 21:16
Ta 又换了一个,你 Ctrl+F5 硬性刷新一下

自己搞了一个
页: [1]
查看完整版本: Python hash() 函数