@nodejs_ru

Страница 965 из 2748
Vladimir
07.07.2017
21:07:57
https://nodejs.org/api/crypto.html#crypto_crypto_timingsafeequal_a_b

Alexander
07.07.2017
21:09:46
имею ввиду аналог bcrypt.compare, который не требует передачи соли, и соответсвенно в базе её хранить не надо

Vladimir
07.07.2017
21:11:41
так не бывает

Alexander
07.07.2017
21:13:01
значит сравнение хэша из базы и прилетевшего с клиента пароля

Google
Alexander
07.07.2017
21:22:24
типа так что ли https://gist.github.com/skeggse/52672ddee97c8efec269

ладно, похоже все сеньоры спят, одни джуны остались

)

Aleksandr
07.07.2017
21:34:47
То есть ты его не используешь?
использую, но базовое понимание языка надо получать из книг, оно годами не устаревает

Mnwa
07.07.2017
21:35:31
Базовое можно получить из реальных проектов, так точнее ощущаешь подводные камни

Ну и гугл для базового понимания основ

Yui
07.07.2017
21:36:29
Я думал, что однажды получил базовое понимание императивного\функционального программирования и ООП можно писать на чем угодно

Alexander
07.07.2017
21:36:31
коллеги не ссорьтесь, тут актуальнейший вопрос по работе с паролями, хэшем и солью

оставьте склоки для джунов

Mnwa
07.07.2017
21:37:43
Тут всё таки node js сообщество, это не C, в котором без книг и вправду почти невозможно разобраться

Alexander
07.07.2017
21:38:29
bcrypt.compare сранивает голый пароль и подсоленый хэш, без явной передачи самой соли. и не требует хранения её в базе

Google
Alexander
07.07.2017
21:38:37
как нарулить это на crypto?

Yui
07.07.2017
21:40:16
Там такого нет, напиши сам

это не сложно

Mnwa
07.07.2017
21:40:47
Хз, как на crypto, но вроде есть готовые реализации в npm, либо писать свой велосипед

Yui
07.07.2017
21:41:13
Да тут писать 15-20 строк, зачем такие пакеты из npm тянуть?

может ты ещё и isArray используешь?

Mnwa
07.07.2017
21:42:51
Я не сталкивался с такой проблемой, и не знаю сколько строк писать

Vsevolod
07.07.2017
21:56:42
поэтому она отдельно и не хранится

а чем бкрипт не подходит вообще в таком случае?

Alexander
07.07.2017
22:01:36
насоветовали crypto, ибо были проблемы с bcrypt - косячность с асинхронностью, через try/catch невозможно отловить потому что промис не throw-ится при несовпадении а выдаёт false

а насчет того, что crypto не хранит соль в хэше.. тут есть такой метод - crypto.pbkdf2 , видимо это решение

Vsevolod
07.07.2017
22:08:48
хз как можно было не суметь приготовить бкрипт

:)

Alexander
07.07.2017
22:09:26
да приготовился он

с нюансами

Mnwa
07.07.2017
22:10:42
А через async await не пробовал реализовать?

Vsevolod
07.07.2017
22:10:49
я ж говорю, это уметь надо :)

Mnwa
07.07.2017
22:11:50
Решение проблемы с асинхронностью

Google
Mnwa
07.07.2017
22:12:25
Через await получаешь false и ловишь его

Alexander
07.07.2017
22:12:34
ну так и сделал

Mnwa
07.07.2017
22:13:20
А с чем у тебя проблема?

Vsevolod
07.07.2017
22:13:21
const equal = await bcrypt.compare(password, hashedPassword); return equal;

хз что там готовить

Sergey
07.07.2017
22:19:03
Зачем bcryct, если есть crypto

Alexander
07.07.2017
22:20:29
Зачем bcryct, если есть crypto
соль в базе хранишь?

Sergey
07.07.2017
22:20:39
Да

Vsevolod
07.07.2017
22:21:37
потому что бкрипт - алго хеширования, а крипто - библиотека функций и сравнить их нельзя? :D

Sergey
07.07.2017
22:21:39
Соль, хеш в базе, и секретное слово отдельно

Vsevolod
07.07.2017
22:21:58
и мд5 используешь :D

Sergey
07.07.2017
22:22:26
Бкрипт использует крипто

Alexander
07.07.2017
22:22:54
ну да, кстати

Sergey
07.07.2017
22:23:42
потому что бкрипт - алго хеширования, а крипто - библиотека функций и сравнить их нельзя? :D
У крипто несколько алгоритмов шифрования, выбирай на свой вкус

И все можно написать в не больше 15 строк кода

Alexander
07.07.2017
22:24:22
ну я почему-то подумал, что хранить ещё и соль в базе - не очень идея

Alexander
07.07.2017
22:25:19
как тогда пароли сравнивать?

Google
Sergey
07.07.2017
22:25:49
Делай одну соль, не надо рандомно каждый раз генерить

Alexander
07.07.2017
22:26:10
а если сервер рестартанёт?

не страшно?

Sergey
07.07.2017
22:26:34
Что страшно?

Alexander
07.07.2017
22:27:15
ну соль перегенерится

Sergey
07.07.2017
22:28:09
В джсоне храни

Alexander
07.07.2017
22:28:18
или соль вообще не рандомная.. а "секрет слово"

Vsevolod
07.07.2017
22:28:32
Бкрипт использует крипто
бкрипт это алгоритм дял хеширования, а что он использует внутри это уже особенности реализации конкретной библиотеки

Alexander
07.07.2017
22:29:07
ну мы тут про ноду, и bcrypt модуль для неё

Admin
ERROR: S client not available

Vsevolod
07.07.2017
22:29:31
Вот тебе нативная либа

https://github.com/kelektiv/node.bcrypt.js/

Sergey
07.07.2017
22:29:35
Vsevolod
07.07.2017
22:30:25
Есть много алгоритмов шифрования, и все они поддерживаются нодой нативно
шифрование != хеширование и нода поддерживает только то, что есть в opensll на конкретной машине

Alexander
07.07.2017
22:31:16
парни, всем спасибо. похоже разобрался

Sergey
07.07.2017
22:32:43
парни, всем спасибо. похоже разобрался
Что решил? Написать 20 строк кода используя крипто модуль ноды. Или скачать сторонний модуль, с кучей зависимостей?

Alexander
07.07.2017
22:34:30
соль в базе хранить не хочу, но и хочу сохранить её динамичной для каждого пароля. не хочу bcrypt. видимо спасёт меня только сrypto.pbkdf2

есди я правильно понял

Vsevolod
07.07.2017
22:34:42
интересное замечаение про кучу зависимостей

http://prntscr.com/fszlt0

Google
Alexander
07.07.2017
22:34:56
https://gist.github.com/skeggse/52672ddee97c8efec269

Vsevolod
07.07.2017
22:35:10
pbkdf2 является аналогом бкрипта, но менее криптостойкий

Alexander
07.07.2017
22:36:17
бкрипт типа slowly

я читал

потому и безопаснее

Vsevolod
07.07.2017
22:36:52
https://en.wikipedia.org/wiki/PBKDF2

там есть сравнение

Alexander
07.07.2017
22:37:51
блин, похоже этот джун на этом собаку съел

мнения разделились, пора опросник вводить

если серьёзно, спасибо огромное, многое прояснили

Vsevolod
07.07.2017
22:41:16
кмк на твоем проекте пофиг что использовать

)

Sergey
07.07.2017
22:46:03
или соль вообще не рандомная.. а "секрет слово"
Нужно и секретное слово и соль, и пароль, и выбрать алгоритм шифрования, чтоб сгенерировать хеш, можешь хранит все в Джон, а хеш в базе

A.
07.07.2017
22:59:48
Друзья, все добрый день/вечер, в зависимости от Вашей геопозиции. Подскажите пожалуйста, есть следующая задача: 1. Есть звуковой файл (звукозапись; формат не важен). 2. Есть второй звуковой файл (звукозапись; формат не важен). 3. Сделать проверку того, что человек, говорящий слова в первой звукозаписи совпадает и/или не совпадает со второй звукозаписью.

Sergey
07.07.2017
22:59:53
Я просто за то, что не надо ставить сторонний модуль, если того же результата можно добиться 20 строками нативного кода

A.
07.07.2017
22:59:57
Попытался в кратце описать. Надеюсь понятно.

A.
07.07.2017
23:00:24
Понятно, что есть API от Google, Yandex для распознавания речи, но смысл только в переводе речи в текст.

Страница 965 из 2748