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

Hérite de : RefCounted < Object

Fournit des fonctionnalités pour calculer des hachages cryptographiques morceau par morceau.

Description

La classe HashingContext fournit une interface pour calculer des hachages cryptographiques sur plusieurs itérations. Utile pour calculer des hachages de fichiers très volumineux (pour ne pas avoir à les garder complètement en mémoire), de flux réseau, et de flux de données en général (pour ne pas avoir à maintenir des buffers).

L'énumération HashType liste tous les algorithmes de hachage supportés.

const TAILLE_CHUNK = 1024

func hacher_fichier(chemin):
    # Vérifier que le fichier existe.
    if not FileAccess.file_exists(path):
        return
    # Créer un contexte SHA-256.
    var ctx = HashingContext.new()
    ctx.start(HashingContext.HASH_SHA256)
    # Ouvrir le fichier à hacher.
    var fichier = FileAccess.open(chemin, FileAccess.READ)
    # Mettre à jour le contexte après la lecture de chaque morceau ("chunk").
    while file.get_position() < file.get_length():
        var restant = fichier.get_length() - fichier.get_position()
        ctx.update(fichier.get_buffer(min(restant, TAILLE_CHUNK)))
    # Récupérer le hachage calculé.
    var res = ctx.finish()
    # Afficher le résultat sous forme hexadécimale et en tableau.
    printt(res.hex_encode(), Array(res))

Méthodes

PackedByteArray

finish()

Error

start(type: HashType)

Error

update(chunk: PackedByteArray)


Énumérations

enum HashType: 🔗

HashType HASH_MD5 = 0

Algorithme de hachage : MD5.

HashType HASH_SHA1 = 1

Algorithme de hachage : SHA-1.

HashType HASH_SHA256 = 2

Algorithme de hachage : SHA-256.


Descriptions des méthodes

PackedByteArray finish() 🔗

Finalise l'actuel contexte, et renvoie le hachage calculé.


Error start(type: HashType) 🔗

Commence un nouveau calcul de hachage du type donné (par exemple HASH_SHA256 pour commencer le calcul d'un SHA-256).


Error update(chunk: PackedByteArray) 🔗

Met à jour le calcul avec la partie des données chunk donnée.