HashingContext

Inherits: Reference < Object

Context to compute cryptographic hashes over multiple iterations.

Description

The HashingContext class provides an interface for computing cryptographic hashes over multiple iterations. This is useful for example when computing hashes of big files (so you don’t have to load them all in memory), network streams, and data streams in general (so you don’t have to hold buffers).

The HashType enum shows the supported hashing algorithms.

const CHUNK_SIZE = 1024

func hash_file(path):
    var ctx = HashingContext.new()
    var file = File.new()
    # Start a SHA-256 context.
    ctx.start(HashingContext.HASH_SHA256)
    # Check that file exists.
    if not file.file_exists(path):
        return
    # Open the file to hash.
    file.open(path, File.READ)
    # Update the context after reading each chunk.
    while not file.eof_reached():
        ctx.update(file.get_buffer(CHUNK_SIZE))
    # Get the computed hash.
    var res = ctx.finish()
    # Print the result as hex string and array.
    printt(res.hex_encode(), Array(res))

Note: Not available in HTML5 exports.

Enumerations

enum HashType:

  • HASH_MD5 = 0 — Hashing algorithm: MD5.
  • HASH_SHA1 = 1 — Hashing algorithm: SHA-1.
  • HASH_SHA256 = 2 — Hashing algorithm: SHA-256.

Method Descriptions

Closes the current context, and return the computed hash.


Starts a new hash computation of the given type (e.g. HASH_SHA256 to start computation of a SHA-256).


Updates the computation with the given chunk of data.

Disclaimer: This page has been automaticaly and directly extracted from the official Godot Docs website, the 2020-03-07 at 01:33:08. It's the English Stable version because it's what most Godot users should use. The Copyright owners are Juan Linietsky, Ariel Manzur and the Godot community. CC-BY 3.0. Thanks for your patience and generosity.