HashingContext

Inherits: Reference < Object

在多次迭代中计算加密哈希的上下文。

描述

HashingContext 类为计算多次迭代的加密哈希值提供接口。例如,当计算大文件的哈希值(你不必在内存中加载它们)、网络流和一般的数据流(你不必持有缓冲区)时,这很有用。

HashType 枚举显示了支持的哈希算法。

const CHUNK_SIZE = 1024

func hash_file(path):
    var ctx = HashingContext.new()
    var file = File.new()
    # 开始一个 SHA-256 context。
    ctx.start(HashingContext.HASH_SHA256)
    # 检查文件是否存在。
    if not file.file_exists(path):
        return
    # 打开文件的哈希。
    file.open(path, File.READ)
    # 在读取每一区块后,更新上下文。
    while not file.eof_reached():
        ctx.update(file.get_buffer(CHUNK_SIZE))
    # 获取计算的哈希值。
    var res = ctx.finish()
    # 以十六进制字符串和数组的形式打印结果。
    printt(res.hex_encode(), Array(res))

注意:这在导出为 HTML5 时是不可用的。

枚举

enum HashType:

  • HASH_MD5 = 0 --- 哈希算法:MD5。

  • HASH_SHA1 = 1 --- 哈希算法:SHA-1。

  • HASH_SHA256 = 2 --- 哈希算法:SHA-256。

方法说明

关闭当前context,并返回计算出的哈希值。


开始对给定的 type (例如 HASH_SHA256 进行新的哈希计算, 以开始计算 SHA-256) 。


使用给定的 chunk 数据更新计算。