【发布时间】:2020-09-08 05:51:10
【问题描述】:
我已经创建了一个对字符串进行 MD5 哈希处理的函数,现在我想多次迭代这个过程,并且每次在它被“重新”哈希之前从十六进制哈希输出中删除一定数量的字符。在花了很多时间寻找一种方法之后,我研究了 range() 函数、 map() 函数,试图使它与 for 循环和嵌套函数一起工作,但我缺乏提出正确问题的知识.答案可能在于 class 功能,但我找不到将其应用于我的特定问题的方法。
下面是我的代码:
import hashlib
string = "randomstring"
def hash(string):
en = string.encode()
hex_result = hashlib.md5(en)
return hex_result.hexdigest()
hash1 = hash(string)[:-10]
print("Hash #1", hash1)
def hash1a(hash1):
en = hash1.encode()
hex_result = hashlib.md5(en)
return hex_result.hexdigest()
hash2 = hash1a(hash1)[:-10]
print("Hash #2", hash2)
def hash2a(hash2):
en = hash2.encode()
hex_result = hashlib.md5(en)
return hex_result.hexdigest()
hash3 = hash2a(hash2)[:-10]
print("Hash #3", hash3)
def hash3a(hash3):
en = hash3.encode()
hex_result = hashlib.md5(en)
return hex_result.hexdigest()
hash4 = hash3a(hash3)[:-10]
print("Hash #4", hash4)
def hash4a(hash4):
en = hash4.encode()
hex_result = hashlib.md5(en)
return hex_result.hexdigest()
hash5 = hash4a(hash4)[:-10]
print("Hash #5", hash5)
def hash5a(hash5):
en = hash5.encode()
hex_result = hashlib.md5(en)
return hex_result.hexdigest()
hash6 = hash5a(hash5)[:-10]
print("Hash #6", hash6)
我希望能够捕获第一个hash 函数的输出,通过附加[:-10] 对其进行修改,然后将该值提交回hash 函数。能够在列表或字典中捕获这一点(通过使用 for 循环?)将是理想的。我花了大约 5 个小时研究这个,我学到了很多东西。希望我能做得更好,但实际上只需要一些方向。谢谢!
【问题讨论】:
标签: python list function for-loop md5