nodejs: как получить промежуточные значения хеша - PullRequest
0 голосов
/ 18 января 2019

Я хочу защитить содержимое последовательного файла, используя хеш-значение 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 голосов
/ 27 января 2019

Я думал слишком сложно: в моем случае (для выражения содержимого файла) алгоритм "SHA" -Secure Hash - на самом деле НЕ требуется, простая хэш-функция может сделать эту работу. Таким образом, будет использоваться CRC32, что позволяет последовательно добавлять байты.

...