Есть ли Erlang эквивалентный `passlib` Python?
Я пытаюсь повторить функциональность следующего фрагмента Python:
from passlib.hash import sha512_crypt
sha512_crypt.encrypt(password, rounds=5000)
Но я не уверен, как это сделать с Эрлангом.
3 ответа
В passlib есть три алгоритма получения ключей (или расширенное хеширование паролей). По крайней мере, два из них существуют как проекты erlang (но не sha512_crypt, хотя вы могли бы написать один самостоятельно (НЕ!!)):
Только не придумывайте собственное воплощение функции получения пароля. Используйте существующие и проверенные вещи. Erlang-pbkdf2 взят из кодовой базы CouchDB, что добавляет ему достоверности.
Отказ от ответственности: я не эксперт по криптографии.
Я предполагаю, что функция хеширования паролей CouchDB достаточно хороша, поскольку это большой проект с открытым исходным кодом, и многие глазные яблоки видели это... Поэтому я использую это в своих проектах. Из CouchDB очень легко извлечь (в результате получается около 50 строк кода), и лицензия в порядке, если вы берете биты для использования в ваших собственных проектах. Посмотрите на couch_passwords: pbkdf2 / 3
https://github.com/apache/couchdb/blob/master/src/couchdb/couch_passwords.erl#L53
В scutil довольно много крипто.
Я обычно просто os:cmd()
вместо стандартного инструмента шифрования, потому что инструменты шифрования должны быть очень хорошо проверены.