Мне интересно, смогу ли я по-новому взглянуть на этот скрипт на python. Он отлично работает с файлами малого и среднего размера, но с большими (4-8 ГБ или около того) он необъяснимо падает после запуска в течение нескольких минут.
Сжатый скрипт здесь
Или:
import sys
import msvcrt
import hashlib
#Print the file name (and its location) to be hashed
print 'File: ' + str(sys.argv[1])
#Set "SHA1Hash" equal to SHA-1 hash
SHA1Hash = hashlib.sha1()
#Open file specified by "sys.argv[1]" in read only (r) and binary (b) mode
File = open(sys.argv[1], 'rb')
#Get the SHA-1 hash for the contents of the specified file
SHA1Hash.update(File.read())
#Close the file
File.close()
#Set "SHA1HashBase16" equal to the hexadecimal of "SHA1Hash"
SHA1HashBase16 = SHA1Hash.hexdigest()
#Print the SHA-1 (hexadecimal) hash of the file
print 'SHA-1: ' + SHA1HashBase16
#Make a blank line
print ' '
#Print "Press any key to continue..."
print 'Press any key to continue...'
#"Press any key to continue..." delay
char=0
while not char:
char=msvcrt.getch()
* Обновлено *
Рабочий скрипт на python для расчета SHA-1 хеша больших файлов. Благодарим Игнасио Васкеса-Абрамса за то, что он указал на то, что было не так, и Тома Зича за код.
Застегнутый источник здесь
Чтобы использовать просто перетащите файл, который будет хэшироваться поверх сценария. В качестве альтернативы вы можете использовать командную строку с использованием:
SHA-1HashGen.py Path&File
Если SHA-1HashGen.py - это имя файла сценария, а Path & File - это путь и имя файла для хэшируемого файла.
Или перетащите скрипт в папку SendTo (в ОС Windows; shell: sendto), чтобы получить его в качестве опции правой кнопки мыши.