我想使用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()函数,克隆带有内部缓冲区的哈希对象可能也不是解决问题的唯一方法。
有什么建议吗?
答案 0 :(得分:0)
我当时想的太复杂了:就我而言(表示文件的内容),“ SHA”安全散列算法-实际上不是必需的,一个简单的散列函数就可以完成这项工作。因此,将使用CRC32,它允许连续添加字节。