| 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. | #!/usr/bin/env python ## md5hash ## ## 2004-01-30 ## ## Nick Vargish ## ## Simple md5 hash utility for generating md5 checksums of files. ## ## usage: md5hash <filename> [..] ## ## Use '-' as filename to sum standard input. import md5 import sys def sumfile(fobj): '''Returns an md5 hash for an object with read() method.''' m = md5.new() while True: d = fobj.read(8096) if not d: break m.update(d) return m.hexdigest() def md5sum(fname): '''Returns an md5 hash for file fname, or stdin if fname is "-".''' if fname == '-': ret = sumfile(sys.stdin) else: try: f = file(fname, 'rb') except: return 'Failed to open file' ret = sumfile(f) f.close() return ret # if invoked on command line, print md5 hashes of specified files. if __name__ == '__main__': for fname in sys.argv[1:]: print '%32s %s' % (md5sum(fname), fname) |