HashingContext
在多次迭代中计算加密哈希的上下文。
描述
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 时是不可用的。
方法
finish ( ) | |
update ( PoolByteArray chunk ) |
枚举
enum HashType:
HASH_MD5 = 0 —- 哈希算法:MD5。
HASH_SHA1 = 1 —- 哈希算法:SHA-1。
HASH_SHA256 = 2 —- 哈希算法:SHA-256。
方法说明
- PoolByteArray finish ( )
关闭当前context,并返回计算出的哈希值。
开始对给定的 type
(例如 HASH_SHA256 进行新的哈希计算, 以开始计算 SHA-256) 。
- Error update ( PoolByteArray chunk )
使用给定的 chunk
数据更新计算。