hash(散列)。hash函数的作用是将输入的任意数据转化成对应的某个输出结果,但是需要保证相同的输入能得到相同的结果,尽量避免不同的输入产生相同的结果。本人粗糙的理解
今天为了实现一个hash的生成。但是又苦于没有现成的hash函数,于是只能为了实现目标胡乱折腾一个。
胡乱写的结果:
txt = input()
base58 = "3jAY5xzdMVBqrNK84aEwgHW6feyJbiGXhLuCvt7knSTsUmFQPRZo129pDc" # 任意的base均可
sum = 0
for i in txt:
sum = sum * 10 + ord(i)
ssum = str(sum**10)
hash = ""
# 1
sum = 0
for i in ssum:
sum += sum * 16 + int(i)
hash += base58[sum % 58]
# 2
sum = 0
for i in ssum:
sum += sum * 17 + int(i)
hash += base58[sum % 58]
# 3
sum = 0
for i in ssum:
sum += sum * 15 + int(i)
hash += base58[sum % 58]
# 4
sum = 0
for i in ssum:
sum += sum * 13 + int(i)
hash += base58[sum % 58]
# 5
sum = 0
for i in ssum:
sum += sum * 14 + int(i)
hash += base58[sum % 58]
# 6
sum = 0
for i in ssum:
sum += sum * 18 + int(i)
hash += base58[sum % 58]
print(hash)
和专业的hash函数的区别:
- 散列的分散性得不到保证。(无法保证比较均匀的分散)
- 算法的性能不高。
- ……待补充