Skip to content

Instantly share code, notes, and snippets.

@DaveCTurner
Last active April 8, 2020 16:38
Show Gist options
  • Save DaveCTurner/8765561 to your computer and use it in GitHub Desktop.
Save DaveCTurner/8765561 to your computer and use it in GitHub Desktop.
SHA1 hashes of contents of TAR archive without extracting the archive first
#!/usr/bin/python
import sys
import tarfile
import hashlib
for filename in sys.argv[1:]:
print filename
with tarfile.open(filename, 'r') as tar:
for tarinfo in tar:
if tarinfo.isreg():
flo = tar.extractfile(tarinfo) # NB doesn't really extract the file, just gives you a stream (file-like-object) for reading it
hash = hashlib.sha1()
while True:
data = flo.read(2**20)
if not data:
break
hash.update(data)
flo.close()
print hash.hexdigest(), tarinfo.name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment