HashingContext

Hereda: RefCounted < Object

Provides functionality for computing cryptographic hashes chunk by chunk.

Descripción

La clase HashingContext proporciona una interfaz para calcular hashes criptográficos en múltiples iteraciones. Esto es útil para calcular hashes de archivos grandes (para no tener que cargarlos todos en la memoria), flujos de red y flujos de datos en general (para no tener que mantener búferes).

El HashType enum muestra los algoritmos de hash soportados.

const TAMANO_FRAGMENTO = 1024

func hashear_archivo(ruta):
    # Comprueba que el archivo existe.
    if not FileAccess.file_exists(ruta):
        return
    # Inicia un contexto SHA-256.
    var ctx = HashingContext.new()
    contexto.start(HashingContext.HASH_SHA256)
    # Abre el archivo a hashear.
    var archivo = FileAccess.open(ruta, FileAccess.READ)
    # Actualiza el ctx después de leer cada fragmento.
    while archivo.get_position() < archivo.get_length():
        var restante = archivo.get_length() - archivo.get_position()
        contexto.update(archivo.get_buffer(min(restante, TAMANO_FRAGMENTO)))
    # Obtiene el hash computado.
    var res = ctx.finish()
    # Imprime el resultado como una string hexadecimal y un array.
    printt(res.hex_encode(), Array(res))

Métodos

PackedByteArray

finish()

Error

start(type: HashType)

Error

update(chunk: PackedByteArray)


Enumeraciones

enum HashType: 🔗

HashType HASH_MD5 = 0

Algoritmo de Hasheado: MD5.

HashType HASH_SHA1 = 1

Algoritmo de Hasheado: SHA-1.

HashType HASH_SHA256 = 2

Algoritmo de Hasheado: SHA-256.


Descripciones de Métodos

PackedByteArray finish() 🔗

Cierra el contexto actual, y devuelve el hash calculado.


Error start(type: HashType) 🔗

Inicia un nuevo cálculo de hash del type dado (p. ej., HASH_SHA256 para iniciar el cálculo de un SHA-256).


Error update(chunk: PackedByteArray) 🔗

Actualiza el cálculo con el chunk de datos dado.