nodejs:如何获取中间哈希值

时间:2019-01-18 08:51:15

标签: javascript node.js cryptography sha256

我想使用sha256哈希值保护顺序文件的内容。 由于必须在运行时期间扩展文件,因此每次添加/扩展都需要进行哈希计算。 我想拥有一个永久的哈希对象,仅使用附加数据进行更新,并允许检索中间结果。

由于实现应在nodejs中完成,因此javascript代码可能如下所示:

const fs = require('fs'), crypto = require('crypto')
var hashPerp = crypto.createHash('sha256')

var data = 'record 1'
fs.writeFileSync('mylist.dat', data)
hashPerp.update(data)
var hashInter = CLONE(hashPerp)
console.log(hashInter.digest('base64'))

data = 'record 2'
fs.appendFileSync('mylist.dat', data)
hashPerp.update(data)
hashInter = CLONE(hashPerp)
console.log(hashInter.digest('base64'))

...

我没有找到合适的对象CLONE()函数,克隆带有内部缓冲区的哈希对象可能也不是解决问题的唯一方法。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我当时想的太复杂了:就我而言(表示文件的内容),“ SHA”安全散列算法-实际上不是必需的,一个简单的散列函数就可以完成这项工作。因此,将使用CRC32,它允许连续添加字节。