python - 读取 txt 文件中的 md5 哈希值并与文件的 md5 哈希值进行比较
问题描述
我是 python 新手。我正在尝试检测文件 md5 哈希的病毒。我有一个病毒 md5 哈希调用 viruslist 的列表,然后我想将 eicar.com 的 md5 与病毒列表中的 md5 哈希进行比较。它检测到然后将打印检测到。但是现在输出总是显示清楚,是我需要 readlines 还是其他?下面是我的编码。
import hashlib
md5_hash = hashlib.md5()
viruslist = open('C:/FYP/SecuCOM2022/viruslist.txt','rb')
virusinside = viruslist.readlines()
a_file =
open('C:/Users/User/Desktop/irustesting/eicar.com','rb')
content = a_file.read()
md5_hash.update(content)
digest = md5_hash.hexdigest()
print(digest)
virus="detected"
novirus="clear"
if virusinside == digest:
print(virus)
else:
print(novirus)
解决方案
假设你的viruslist.txt
样子
bc6e6f16b8a077ef5fbc8d59d0b931b9
2d9fd9fbccf64a485304d7596772f2b0
...
然后您可能需要进行以下更改。
viruslist.txt
使用 以文本模式打开viruslist = open('C:/FYP/SecuCOM2022/viruslist.txt','rt')
。这是因为 的输出hashlib.md5().hexdigest()
是字符串而不是字节。- 去掉
viruslist.txt
. 例如virusinside = [l.rstrip() for l in viruslist]
. - 使用
in
代替==
和反转摘要的比较。例如,if digest in virusinside:
推荐阅读
- aframe - 如何定义相机移动的限制
- laravel - VueJS 作为 SPA 和 jwt 令牌,何时验证令牌
- jquery - 有一种方法可以将数据表/CSV 索引到 Elasticsearch
- hyperledger-fabric - Hyperledger Fabric 如何确保 couchdb 中状态的完整性?
- linux - GNU Parallel - 如何使用输入参数捕获具有名称的文件中的输出
- python - 如何通过正则表达式过滤 numpy 数组?
- eclipse - 在 Windows 10 中的 Eclipse Oxygen 上创建 MPI 项目
- python - html 到文本:将制表符后的所有内容移至新行
- r - 根据其他 3 列的结果在 R 数据框中创建新列
- facebook - facebook 聊天进入网站时出现内容安全策略错误?