Функция md5

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

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

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

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

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

Подробности

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

Примеры

Dim s, hash As String
'simple calculation on a short string
s="Sting to calculate MD5 on"
hash=md5(s,"",MD5_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=md5(s,hash,MD5_UPDATE,0)
   s=romfile.getdata(192)
Wend
hash=md5(s,hash,MD5_FINISH,romfile.size) 'last portion for whatever unprocessed data is remaining in the file
Исходный материал Tibbo обновлён 21 июля 2022Оригинал на docs.tibbo.com · Сообщить об ошибке