Есть такой код:
var crypto = require("crypto");
crypto.createHmac("sha512", this.salt).update(password).digest("hex")
Для чего нужны методы update, digest и чем update отличается от второго аргумента метода createHmac?
Это обычная реализация хеш-функций в разных библиотеках на разных языках.
Метод update нужен для того, что бы можно было считать хеш для сколь угодно большого массива данных, и при этом не нужно его полностью загружать в память. Например, вы хотите посчитать хеш от фильма размером 40 Гб. Для этого вы считываете его небольшими кусками, и закидываете их через метод update. В конце вызываете digest, и получаете хеш.
Хеш-функции проектируют так, что бы им можно было "скармливать" данные кусками, и при этом эти куски не нужно хранить в памяти. К примеру, SHA512 "кушает" данные блоками по 128 байт, при этом хранит свое состояние всего в 64 байтах (512 битах).
В вашем примере создается хеш-функция HMAC, при этом salt, это ее параметр, а не простая конкатенация. Она устроена немного сложнее.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости