Você pode usar uma biblioteca Python. No meu sistema Fedora eu fiz:
sudo dnf search bcrypt
(o sudo é apenas para evitar desperdiçar espaço para um cache dnf do usuário) e, a partir do resultado, é possível ver que há um pacote Python2 e Python3:
py-bcrypt.x86_64 : Python bindings for OpenBSD's Blowfish password hashing code
python3-py-bcrypt.x86_64 : Python 3 bindings for OpenBSD's Blowfish password hashing code
Instale a versão do Python2 e liste os arquivos no pacote:
sudo dnf install py-bcrypt.x86_64
rpm -ql py-bcrypt.x86_64
Isso mostra que há um arquivo /usr/lib64/python2.7/site-packages/bcrypt/__init__.py
para que eu possa obter a documentação com
pydoc bcrypt
Isso me mostra o suficiente para escrever o seguinte comando que fará o hash da string "password"
:
$ python -c 'import bcrypt; print(bcrypt.hashpw("password", bcrypt.gensalt(log_rounds=10)))'
$2a$10$vWFRZgbOx6RKOKYxCTtyWuMJM60E90Vdm/.0nj.X/o3dYUxvQ/2Dm
Para versões posteriores de bcrypt
uso em rounds=
vez de log_rounds=
.