Чем отличаются библиотеки Node bcrypt и bcryptjs? - PullRequest
0 голосов
/ 13 февраля 2019

Мне нужно использовать bcrypt в Node, и, как обычно, можно выбрать из 27 библиотек gazillion.

Два главных пакета в npm:

  • bcrypt 247 тыс. Загрузок / месяц
  • bcryptjs 337 тыс. Загрузок / месяц
  • (что еще нужно рассмотреть?)

Как ониотличаются?Есть ли веская причина или вариант использования одного или другого?

Очевидно, что это чистый JS, а другой имеет привязки к собственной криптографической библиотеке C ++.И поэтому последний быстрее , чем первый.

Я читал, что нужно выбрать самую быструю реализацию самого медленного алгоритма .Так что это означает, что я должен выбрать не-JS.Однако JS еще более популярен.Почему это так в случае с узлом - есть ли причина, по которой пакет "чистый js" предпочтительнее пакета, который привязывается к собственной библиотеке с помощью node-gyp?

1 Ответ

0 голосов
/ 13 февраля 2019

При рассмотрении зависимостей, запускаемых только в Node.js, нет причин не следовать советам, данным вам при выборе самой быстрой реализации, которая в этом случае демонстрирует собственную привязку bcrypt.

Для изоморфного JavaScript , когда вы ожидаете, что он также будет запущен в браузере, вы не можете использовать нативные привязки.Таким образом, в этом случае brcyptjs является самой быстрой реализацией, доступной в чистом JavaScript.

Ваша альтернатива для использования bcrypt в изоморфной настройке будет состоять в том, чтобы скомпилировать вашу собственную привязку в WebAssembly если это вообще возможно.Некоторые собственные привязки в настоящее время не могут быть скомпилированы в WebAssembly, но этот пакет , по-видимому, имеет по крайней мере подмножество bcrypt, реализованное в wasm, хотя я не могу проверить его производительность или безопасность по сравнению с вашими текущими двумя вариантами.

Недостатком использования WebAssembly является значительно большее время разработки, особенно если вы не знакомы с API, и это трудно оправдать, когда bcryptjs уже является заменой в рамках того же уровня производительности.

...