HashingContext

Inherits: Reference < Object

Contexto para calcular los hashes criptográficos en múltiples iteraciones.

Descripción

La clase HashingContext proporciona una interfaz para computar hashes criptográficos en múltiples iteraciones. Esto es útil, por ejemplo, cuando se calculan 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_PORCION  = 1024

func hash_archivo(ruta):
    var contexto = HashingContext.new()
    var archivo = File.new()
    # Empieza un contexto SHA-256
    contexto.start(HashingContext.HASH_SHA256)
    # Comprueba que el archivo existe.
    if not archivo.file_exists(ruta):
        return
    # Abre el archivo a hashear.
    archivo.open(ruta, File.READ)
    # Actualiza el contexto despues de leer cada porción.
    while not archivo.eof_reached():
        contexto.update(file.get_buffer(TAMANO_PORCION))
    # Obtiene el hash computado.
    var resultado = contexto.finish()
    # Imprime el resultado como una string hexadecimal y array.
    printt(resultado.hex_encode(), Array(resultado))

Nota: No disponible para exportar HTML5.

Métodos

PoolByteArray

finish ( )

Error

start ( HashType type )

Error

update ( PoolByteArray chunk )

Enumeraciones

enum HashType:

  • HASH_MD5 = 0 --- Algoritmo de Hasheado: MD5.

  • HASH_SHA1 = 1 --- Algoritmo de Hasheado: SHA-1.

  • HASH_SHA256 = 2 --- Algoritmo de Hasheado: SHA-256.

Descripciones de Métodos

Cierra el contexto actual, y devuelve el hash calculado.


Inicia un nuevo cálculo de hash del tipo dado (por ejemplo, HASH_SHA256 para iniciar el cálculo de un SHA-256).


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