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

Eredita: RefCounted < Object

Fornisce funzionalità per calcolare hash crittografici pezzo per pezzo.

Descrizione

La classe HashingContext fornisce un'interfaccia per il calcolare gli hash crittografici attraverso più iterazioni. Utile per calcolare gli hash di file grandi (in modo da non doverli caricare tutti in memoria), flussi di rete e flussi di dati in generale (in modo da non dover contenere alcun buffer).

L'enumerazione HashType mostra gli algoritmi di hashing supportati.

const CHUNK_SIZE = 1024

func hash_file(path):
    # Controlla che il file esista.
    if not FileAccess.file_exists(path):
        return
    #Avvia un contesto SHA-256.
    var ctx = HashingContext.new()
    ctx.start(HashingContext.HASH_SHA256)
    # Apre il file su cui calcolare l'hash.
    var file = FileAccess.open(path, FileAccess.READ)
    # Aggiorna il contesto dopo aver letto ogni blocco.
    while file.get_position() < file.get_length():
        var remaining = file.get_length() - file.get_position()
        ctx.update(file.get_buffer(min(remaining, CHUNK_SIZE)))
    # Ottieni l'hash calcolato.
    var res = ctx.finish()
    # Stampa il risultato come stringa esadecimale e array.
    printt(res.hex_encode(), Array(res))

Metodi

PackedByteArray

finish()

Error

start(type: HashType)

Error

update(chunk: PackedByteArray)


Enumerazioni

enum HashType: 🔗

HashType HASH_MD5 = 0

Algoritmo di hashing: MD5.

HashType HASH_SHA1 = 1

Algoritmo di hashing: SHA-1.

HashType HASH_SHA256 = 2

Algoritmo di hashing: SHA-256.


Descrizioni dei metodi

PackedByteArray finish() 🔗

Chiude il contesto attuale e restituisce l'hash calcolato.


Error start(type: HashType) 🔗

Avvia un nuovo calcolo di hash di tipo type (ad esempio HASH_SHA256 per avviare il calcolo di un SHA-256).


Error update(chunk: PackedByteArray) 🔗

Aggiorna il calcolo con il chunk di dati specificato.