GNU/Linux >> Tutoriels Linux >  >> Linux

Une doublure pour créer des mots de passe sous Linux ?

Cela dépend de ce que vous entendez par "lisible". Si vous souhaitez n'utiliser que des caractères hexadécimaux, vous en aurez besoin de 32 pour atteindre 128 bits d'entropie; cette ligne fonctionnera (en utilisant uniquement les commandes du coreutils paquet):

head -c16 /dev/urandom | md5sum

Cette variante produit des mots de passe avec uniquement des lettres minuscules, de 'a' à 'p' (c'est ce que vous voudrez si vous devez "taper" le mot de passe sur un smartphone) :

head -c16 /dev/urandom | md5sum | tr 0-9 g-p

Si vous voulez saisir un caractère de moins, essayez ceci :

head -16 /dev/urandom | md5sum

(La probabilité d'obtenir tous les 16 premiers octets aléatoires sous la forme 0x0A, c'est-à-dire le caractère "nouvelle ligne", est de 2, donc cette ligne reçoit toujours 128 bits d'entropie.)

Limitez-vous toujours aux commandes de coreutils , vous pouvez faire ceci :

mktemp -u XXXXXXXXXXXXXXXXXXXXXX

Celui-ci génère un mot de passe de 22 caractères, en utilisant /dev/urandom comme source interne d'aléatoire (j'ai vérifié dans le code source, et un strace appel confirme). Les caractères sont des lettres (majuscules et minuscules) et des chiffres; puisque 62 est supérieur à 2, les 22 caractères suffisent.

Encore un :

od -An -x /dev/urandom | head -1

cela affiche huit séquences de quatre chiffres hexadécimaux. On peut dire que cette division en petites séquences peut aider à la lecture.

Pour une ligne beaucoup plus longue et un type de mot de passe assez distinct, essayez ceci :

for i in {1..8} ; do head -$(expr $(head -c7 /dev/urandom | od -An -t dL) % $(wc -l < /usr/share/dict/british-english)) /usr/share/dict/british-english | tail -1 ; done

(celui-ci ne fonctionne que sur un hôte 64 bits; remarquerez-vous pourquoi ?). Hors coreutils , cette version nécessite également un fichier dictionnaire, ici celui de l'anglais britannique.


Quelques suggestions fabuleuses dans les autres réponses. Je trouve que makepasswd n'est pas disponible partout, et l'utilisation de tr est (légèrement) délicate, il existe donc une autre option utilisant OpenSSL :

openssl rand -base64 16

Le nombre est le nombre d'octets d'aléatoire - donc 16 octets pour 128 bits d'entropie.


Utiliser pwgen

Le oneliner le plus simple de tous les temps :

pwgen

Il tente de créer des mots de passe faciles à retenir. Pour désactiver cela et créer des mots de passe plus sécurisés, utilisez le --secure ou -s drapeau.

pwgen -s

Les mots de passe générés sont-ils trop longs ? Trop court? Ajoutez simplement la longueur souhaitée :

pwgen 9
# Or
pwgen -s 9
# Or
pwgen 9 -s

Outils similaires

Il se trouve que je connais pwgen, il existe d'autres outils. Vous pouvez les trouver en utilisant la fonction de recherche de votre distribution. Dans Debian, c'est :

apt-cache search password generator

Il effectue une recherche exacte (mais insensible à la casse). Utilisation de password generat élargit plutôt la recherche.

Avant d'installer le package, il peut être utile de consulter sa description. Toujours dans Debian :

apt-cache show $DESIRED_PACKAGE
# E.g.
apt-cache show pwgen

Outils que j'ai pu trouver de cette façon :

  • pwgen
  • makepasswd
  • apg
  • otp (destiné aux tampons à usage unique, non recommandé)
  • gpw (se concentre fortement sur la prononciation, non recommandé)

Utilisation des outils Unix standard

Tous les systèmes peuvent ne pas avoir pwgen disponible. Comme d'autres l'ont répondu, vous pouvez utiliser md5sum ou sha256sum , mais cela ne produit que 0-9 et a-f. Pas de g-z ou de casse mixte, encore moins de caractères spéciaux. Il est préférable de simplement filtrer les caractères non imprimables de /dev/urandom jusqu'à ce que vous ayez un mot de passe de la longueur souhaitée :

cat /dev/urandom | tr -cd '@-~' | head -c 8

Ce qui donne quelque chose comme XiVsdn[y ou [email protected]^lY . Vous pouvez modifier le 8 à la fin pour la longueur de mot de passe souhaitée. Vous pouvez également modifier le @-~ partie pour limiter les caractères. Par exemple, cela n'imprimera que des caractères alphanumériques :

cat /dev/urandom | tr -cd 'a-zA-Z0-9' | head -c 8

C'est presque identique à ce que pwgen -s ferait et donne des mots de passe comme nZiUzNtE .

En prime, le tr L'outil est inclus dans presque tous les systèmes d'exploitation (Mac OS X, GNU/Linux, Android/Linux, Solaris, FreeBSD, etc.) à l'exception de Microsoft Windows.


Linux
  1. Générer des mots de passe sur la ligne de commande Linux

  2. Comment créer un swap sous Linux

  3. Jumble Password - Créez des identifiants et des mots de passe uniques sous Linux

  4. Commande Linux ln

  5. Une commande pour créer un répertoire et un fichier à l'intérieur de celui-ci commande linux

Comment créer un fichier sous Linux

Comment créer des raccourcis sur le bureau Linux

Comment créer un alias SSH sous Linux

Comment créer un alias sous Linux

4 façons de créer un nouveau fichier sous Linux

Créer une partition sous Linux - Un guide étape par étape