欢迎光临散文网 会员登陆 & 注册

摘要算法的流式计算

2023-01-25 11:33 作者:CSDN首席喷子  | 我要投稿

MD2、4、5和SHA的算法描述中,数据都是一次性读入,然后按分组长度计算的。如果数据量很大,这种方法显然就不可行。更理想的方案是将摘要算法视为一个流,不断向其中推入数据,每一次推入都执行摘要更新,并丢弃之前推入的数据。以MD2为例,其关键思路在于设置一个输入缓冲区和一个校验和,每次填入16个字节就触发一次摘要计算,并更新一次校验和,输出最终结果前,再对校验和的16个字节计算一次摘要。首先定义一组推入和终止操作:

MD2的算法输入为16字节,其推入数据的代码如下:

每一次存储数据超过16字节,就会触发一次摘要计算,多余出来的数据还要再次填入缓冲区里面。最终输出时,还要再对校验和计算一次摘要,代码如下:

    摘要的实际计算部分代码如下:


摘要算法的流式计算的评论 (共 条)

分享到微博请遵守国家法律