用python写哈希算法
时间: 2024-09-15 15:08:48 浏览: 42
在Python中,最常用的是内置的`hash()`函数来获取一个对象的哈希值。如果你想要创建自定义哈希函数,可以重写`__hash__()`方法。此外,Python还提供了一些内置的哈希库,比如`hashlib`模块,它包含多种加密哈希函数,例如MD5、SHA1、SHA256等。
下面是一个简单的例子,演示如何使用`hashlib`库计算字符串的MD5哈希:
```python
import hashlib
def hash_string(s):
m = hashlib.md5()
m.update(s.encode('utf-8'))
return m.hexdigest()
# 使用示例
s = "Hello, World!"
print(hash_string(s)) # 输出类似 "098f6bcd4621d373cade4e832627b4f6"
```
如果你想创建一个自定义的对象并定义其哈希值,需要覆盖`__hash__()`和`__eq__()`方法:
```python
class CustomObject:
def __init__(self, value):
self.value = value
def __hash__(self):
return hash(self.value)
def __eq__(self, other):
return self.value == other.value
o1 = CustomObject(1)
o2 = CustomObject(1)
print(hash(o1) == hash(o2)) # 输出 True,因为它们的哈希值相同
```
阅读全文