Использование параметров Firebase SCrypt в пакете nodejs scrypt

Я боролся с этим в течение некоторого времени, надеюсь, кто-то делал это раньше и может помочь мне на моем пути. Я обратился к сотрудникам Firebase с просьбой указать параметры scrypt, чтобы перенести нашу аутентификацию пользователей с Firebase на наш собственный сервер. Теперь я получил эти параметры, но понятия не имею, как они должны отображаться в направлении пакета scrypt узла ( https://www.npmjs.com/package/scrypt). Параметры Firebase имеют следующий формат:

hash_config: {
    algorithm: SCRYPT,
    base64_signer_key: asdf1234
    base64_salt_seperator: xxxx
    rounds: 123456
    mem_cost: 098765
}

Каким-то образом они должны отображаться на параметры скрипта nodejs, но я не могу найти сходства. Любая помощь приветствуется!

3 ответа

Решение

Много боролся с получением скриптовой работы должным образом. Документация отсюда https://github.com/firebase/scrypt выглядит устаревшей. Решили поделиться знаниями, как мы правильно поступили в нашей команде.

Рабочая команда

scrypt {key} {salt} {saltSeparator} {rounds} {memcost} [-P]

Нет необходимости в конкатенации соль + разделитель и манипуляции base64.

Firebase использует пользовательскую версию Scrypt для аутентификации пользователей. Мы берем производный ключ от стандартного scrypt, а затем AES зашифровываем его "перцем", сохраненным с хешированным паролем.

Мы просто открываем исходную версию Firebase, чтобы вы могли самостоятельно проверить пароль. Проверьте это на http://github.com/firebase/scrypt

Я столкнулся с той же проблемой при миграции моих пользователей Firebase. Я также возвращался туда и обратно с технической поддержкой Firebase - они сказали, что, к сожалению, не могут поделиться своими библиотеками хеширования. В качестве альтернативы, я перенес своих пользователей на новую базу данных и проверял наличие переменной "соль" всякий раз, когда кто-то входит в систему. Если соль существует, то запрашивайте базу данных Firebase, в противном случае запросите свою собственную базу данных.

Другие вопросы по тегам