Vous pouvez (ab) utiliser à htpasswd
partir du paquet apache-utils , à condition d'avoir la version 2.4 ou supérieure.
htpasswd -bnBC 10 "" password | tr -d ':\n'
-b
prend le mot de passe du deuxième argument de commande
-n
imprime le hachage sur stdout au lieu de l'écrire dans un fichier
-B
indique à bcrypt
-C 10
définit le coût de bcrypt à 10
La commande nue htpasswd sort au format <nom>: <hash> suivie de deux retours à la ligne. D'où la chaîne vide pour le nom et la tr
suppression des deux-points et des retours à la ligne.
La commande génère bcrypt avec $2y$
préfixe, ce qui peut être problématique pour certaines utilisations, mais peut facilement être corrigé par un autre sed
car la variante OpenBSD using $2a$
est compatible avec la variante fixe crypt_blowfish using $2y$
.
htpasswd -bnBC 10 "" password | tr -d ':\n' | sed 's/$2y/$2a/'
Lien vers la page de manuel htpasswd: https://httpd.apache.org/docs/2.4/programs/htpasswd.html
Détails sur les variantes de bcrypt: /programming//a/36225192/6732096
Vous pouvez utiliser une bibliothèque Python. Sur mon système Fedora, j'ai fait:
(le sudo est juste pour éviter de gaspiller de l'espace pour un cache dnf utilisateur) et du résultat peut voir qu'il y a un paquet Python2 et Python3:
Installez la version Python2 et répertoriez les fichiers dans le package:
Cela montre qu'il y a un fichier
/usr/lib64/python2.7/site-packages/bcrypt/__init__.py
pour que je puisse obtenir la documentation avecCela me montre assez pour écrire la commande suivante qui hachera la chaîne
"password"
:Pour les versions ultérieures d'
bcrypt
utilisationrounds=
au lieu delog_rounds=
.la source
sudo
d'exécuterdnf search
, cela fonctionne très bien en tant qu'utilisateur standard.log_rounds
semble avoir changé pour lerounds
rendrepython -c 'import bcrypt; print(bcrypt.hashpw("password", bcrypt.gensalt(rounds=10)))'
.Complément à
@Disassembler
la réponse de:ps
)15
est un bon équilibre entre la complexité et la vitesse de génération de mot de passeScript de wrapper pour
htpasswd
&bcrypt
:la source
root
utilisateur, c'est une bonne idée de créer un lien symbolique vers/dev/null
.