我正在尝试复制以下 Python 代码段的功能:
from passlib.hash import sha512_crypt
sha512_crypt.encrypt(password, rounds=5000)
但我不确定如何使用 Erlang 来做到这一点。
我正在尝试复制以下 Python 代码段的功能:
from passlib.hash import sha512_crypt
sha512_crypt.encrypt(password, rounds=5000)
但我不确定如何使用 Erlang 来做到这一点。
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()
使用标准加密工具,因为加密工具需要经过很好的验证。