首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python递归Hashlib

Python递归Hashlib
EN

Stack Overflow用户
提问于 2014-06-06 05:33:03
回答 1查看 602关注 0票数 0

在计算/bin/*目录下所有文件的所有校验和时,我遇到了问题。我正在用Python实现一个HIDS,所以我需要计算每个文件的校验和并将它保存在一个列表中.所以这里的代码只返回/bin/*目录的第一个校验和。

代码语言:javascript
复制
import sys
import haslib
path = sys.argv[1] #PATH OF THE FILES, ex: /etc/shadow, /bin/*, etc.

with open(path,'rb') as fh:
   md5 = hashlib.md5()
   while True:
      data = fh.read(8192)
      if not data:
         break
      md5.update(data)
print md5.hexdigest()

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-06 05:42:51

代码语言:javascript
复制
import sys
from os import listdir
from os.path import isfile, join
import hashlib
path = sys.argv[1] #PATH OF THE FILES, ex: /etc/shadow, /bin/*, etc.
files = [ f for f in listdir(path) if isfile(join(path,f)) ]
my_files = {}
for fil in files:
    with open(fil,'rb') as fh:
       md5 = hashlib.md5()
       while True:
          data = fh.read(8192)
          if not data:
             break
          md5.update(data)
    my_files[fil] = md5.hexdigest()
for k,v in my_files.iteritems():
    print 'file_name is {} | hash is {}'.format(k,v)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24074841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档