Почему мы конвертируем в строку после хеширования пароля?
u.password = crypto.pbkdf2Sync(password, salt, iteration, keylen, digest).toString('hex');
Результат crypto.pbkdf2Sync является двоичным значением: его сложнее хранить, представлять, передавать. Таким образом, вы можете смело превращать его в шестнадцатеричное представление, которое намного удобнее для пользователя.
crypto.pbkdf2Sync