Функция sha1

Назначение:Вычисляет SHA1-хеш для строки str.
Синтаксис:sha1(byref str as string,byref input_hash as string,sha1_mode as sha1_modes,total_len as word) as string
Возвращает:Строку-хеш из 20 символов; пустую строку, если обнаружен недопустимый аргумент str или input_hash
См. также:md5

ЭлементОписание
strСтрока с (очередной порцией) входных данных, для которых вычисляется SHA1-хеш. При sha1_mode = 0 - SHA1_UPDATE длина строки должна быть 64, 128 или 192 символа. Любая другая длина приведёт к ошибке, и функция вернёт пустую строку. При sha1_mode = 1 - SHA1_FINISH строка может иметь любую длину (до 255 байт).
input_hashХеш, полученный в результате вычисления SHA1 для предыдущей порции данных. Для первой порции данных оставьте его пустым. Для второй и всех последующих порций передавайте результат вычисления SHA1 для предыдущей порции. Результат sha1 всегда имеет длину 20 символов, поэтому строка любой другой длины (кроме 0 - см. выше) приведёт к ошибке, и функция вернёт пустую строку.
sha1_mode

0 - SHA1_UPDATE: устанавливается для всех порций данных, кроме последней.

1 - SHA1_FINISH: устанавливается для последней порции данных; этот режим выбирается и тогда, когда порция всего одна.

total_lenОбщая длина обработанных данных (по всем порциям вместе). Имеет значение только при sha1_mode = 1 - SHA1_FINISH, то есть только для последней или единственной порции данных.

Подробности

SHA1 - стандартный метод вычисления хеш-кодов для данных любого размера. Объём входных данных часто превышает максимальную ёмкость строковых переменных (255 символов). Метод sha1 можно вызывать повторно, чтобы обработать данные любого размера (см. пример ниже).

Примеры

Dim s, hash As String
'simple calculation on a short string
s="Sting to calculate SHA1 on"
hash=sha1(s,"",SHA1_FINISH,Len(s))
'calculation on the entire contents of data in the 'text.txt 'file
romfile.open("text.txt")
hash=""
s=romfile.getdata(192) 'use max portions
While Len(s)=192
   hash=sha1(s,hash,SHA1_UPDATE,0)
   s=romfile.getdata(192)
Wend
hash=sha1(s,hash,SHA1_FINISH,romfile.size) 'last portion for whatever unprocessed data is remaining in the file
Исходный материал Tibbo обновлён 21 июля 2022Оригинал на docs.tibbo.com · Сообщить об ошибке