HashingContext

Наследует: RefCounted < Object

Предоставляет функциональность для вычисления криптографических хешей по частям.

Описание

Класс HashingContext предоставляет интерфейс для вычисления криптографических хэшей в течение нескольких итераций. Полезно для вычисления хэшей больших файлов (чтобы вам не приходилось загружать их все в память), сетевых потоков и потоков данных в целом (чтобы вам не приходилось хранить буферы).

Перечисление HashType показывает поддерживаемые алгоритмы хэширования.

const CHUNK_SIZE = 1024

func hash_file(path):
    # Проверить, существует ли файл.
    if not FileAccess.file_exists(path):
        return
    # Запустить контекст SHA-256.
    var ctx = HashingContext.new()
    ctx.start(HashingContext.HASH_SHA256)
    # Открыть файл для хэширования.
    var file = FileAccess.open(path, FileAccess.READ)
    # Обновить контекст после прочтения каждого фрагмента.
    while file.get_position() < file.get_length():
        var remaining = file.get_length() - file.get_position()
        ctx.update(file.get_buffer(min(remaining, CHUNK_SIZE)))
    # Получить вычисленный хэш.
    var res = ctx.finish()
    # Вывести результат в виде шестнадцатеричной строки и массива.
    printt(res.hex_encode(), Array(res))

Методы

PackedByteArray

finish()

Error

start(type: HashType)

Error

update(chunk: PackedByteArray)


Перечисления

enum HashType: 🔗

HashType HASH_MD5 = 0

Алгоритм хэширования: MD5.

HashType HASH_SHA1 = 1

Алгоритм хэширования: SHA-1.

HashType HASH_SHA256 = 2

Алгоритм хэширования: SHA-256.


Описания метода

PackedByteArray finish() 🔗

Закрывает текущий контекст и возвращает вычисленный хэш.


Error start(type: HashType) 🔗

Запускает новое вычисление хэша указанного type (например, HASH_SHA256 для запуска вычисления SHA-256).


Error update(chunk: PackedByteArray) 🔗

Обновляет вычисление с использованием указанного chunk данных.