Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

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 даних.