Что делают методы update и digest в библиотеке crypto для node.js

211
01 апреля 2018, 21:48

Есть такой код:

var crypto = require("crypto");
crypto.createHmac("sha512", this.salt).update(password).digest("hex")

Для чего нужны методы update, digest и чем update отличается от второго аргумента метода createHmac?

Answer 1

Это обычная реализация хеш-функций в разных библиотеках на разных языках.

Метод update нужен для того, что бы можно было считать хеш для сколь угодно большого массива данных, и при этом не нужно его полностью загружать в память. Например, вы хотите посчитать хеш от фильма размером 40 Гб. Для этого вы считываете его небольшими кусками, и закидываете их через метод update. В конце вызываете digest, и получаете хеш.

Хеш-функции проектируют так, что бы им можно было "скармливать" данные кусками, и при этом эти куски не нужно хранить в памяти. К примеру, SHA512 "кушает" данные блоками по 128 байт, при этом хранит свое состояние всего в 64 байтах (512 битах).

В вашем примере создается хеш-функция HMAC, при этом salt, это ее параметр, а не простая конкатенация. Она устроена немного сложнее.

READ ALSO
Получить пользовательское слово в теге

Получить пользовательское слово в теге

В шаблоне вывода тегов (компонент K2) пытаюсь получить пользовательское поле с ценойВ результате либо массив пустой либо ошибка в foreach

193
insert into в php

insert into в php

Здравствуйте, подскажите пожалуйста как могу сделать запрос insert into в обычном стиле а не ооп

193
Как это сделать? Работа с Google поисковиком [требует правки]

Как это сделать? Работа с Google поисковиком [требует правки]

Добрый вечерИмеется input форма, в неё человек вводит вопрос

220
Небольшой вопрос по Vue.js

Небольшой вопрос по Vue.js

У меня есть таблица:

188