【问题标题】:Hash each line in Text file Python MD5散列文本文件Python MD5中的每一行
【发布时间】:2020-07-06 17:37:08
【问题描述】:

我正在尝试编写一个程序,该程序将打开一个文本文件并为每行文本提供一个 md5 哈希值。例如我有一个文本文件:

66090001081992
66109801042010
68340016052015
68450001062015
79450001062016

这是我的代码:

import hashlib
hasher = hashlib.md5()
archivo_empleados = open("empleados.txt","rb")
lista = (archivo_empleados.readlines())



archivo_empleados.close()

【问题讨论】:

  • 你的问题是什么:如何散列字节序列或如何遍历文件的行或其他内容?
  • 如何遍历行
  • 请务必阅读input and output 上的教程。第 7.2.1 节。文件对象的方法展示了如何以 Python 的方式迭代文本文件的行。

标签: python hash file-io hashmap hashtable


【解决方案1】:

您可以使用with 上下文管理器打开文件(不需要调用.close()),然后使用for 循环迭代文件的每一行并打印MD5 哈希字符串。在散列之前,您还需要在utf-8 中进行编码。

import hashlib

def compute_MD5_hash(string, encoding='utf-8'):
    md5_hasher = hashlib.md5()
    md5_hasher.update(string.encode(encoding))
    return md5_hasher.hexdigest()

with open("path/to/file") as f:
    for line in f:
        print(compute_MD5_hash(line))

它给出如下哈希字符串:

58d3ab1af1afd247a90b046d4fefa330
6dea9449f52e07bae45a9c1ed6a03bbc
9e2d8de8f8b3df8a7078b8dc12bb3e35
20819f8084927f700bd58cb8108aabcd
620596810c149a5bc86762d2e1924074

您可以查看documentation 中的各种hashlib 函数。

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 2015-05-03
    • 2015-08-05
    • 2018-12-26
    • 2023-03-29
    • 2019-08-03
    相关资源
    最近更新 更多