javascript - nodejs:如何获取中间哈希值
问题描述
我想使用 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() 函数,并且克隆哈希对象及其内部缓冲区也可能不是解决问题的唯一方法。
有什么建议么?
解决方案
我想得太复杂了:在我的情况下(表达文件的内容)“SHA” - 安全散列算法 - 实际上不需要,一个简单的散列函数可以完成这项工作。因此,将使用 CRC32,它允许连续添加字节。
推荐阅读
- java - 填写用户类时出现 ClassCastException 错误
- javascript - 如何在 jsx 中渲染字符串在对象数组上使用 reduce
- mysql - MySQL 获取当前 + N 前几个月
- java - Java:将使用服务器公钥加密的随机对称密钥发送到该服务器是否安全?
- assembly - 将几种数据类型的数字输出到 MessageBox 会造成混乱
- tensorflow - TensorFlow 离线使用预训练模型
- django - 如何检查扩展用户模型中的重复项
- reactjs - 在堆栈导航中反应本机选项卡导航不起作用
- knockout.js - 结果在淘汰赛中重复
- memory - 有没有更安全的方法来使用联合在整数和浮点数之间进行转换?