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

繼承: RefCounted < Object

提供分段計算加密雜湊的功能。

說明

The HashingContext class provides an interface for computing cryptographic hashes over multiple iterations. Useful for 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):
    # Check that file exists.
    if not FileAccess.file_exists(path):
        return
    # Start an SHA-256 context.
    var ctx = HashingContext.new()
    ctx.start(HashingContext.HASH_SHA256)
    # Open the file to hash.
    var file = FileAccess.open(path, FileAccess.READ)
    # Update the context after reading each chunk.
    while file.get_position() < file.get_length():
        var remaining = file.get_length() - file.get_position()
        ctx.update(file.get_buffer(min(remaining, CHUNK_SIZE)))
    # Get the computed hash.
    var res = ctx.finish()
    # Print the result as hex string and array.
    printt(res.hex_encode(), Array(res))

方法

PackedByteArray

finish()

Error

start(type: HashType)

Error

update(chunk: PackedByteArray)


列舉

enum HashType: 🔗

HashType HASH_MD5 = 0

雜湊演算法:MD5。

HashType HASH_SHA1 = 1

雜湊演算法:SHA-1。

HashType HASH_SHA256 = 2

雜湊演算法:SHA-256。


方法說明

PackedByteArray finish() 🔗

關閉目前本文,並返回計算出的雜湊值。


Error start(type: HashType) 🔗

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


Error update(chunk: PackedByteArray) 🔗

使用給定的資料塊 chunk 更新計算。