GNU/Linux >> Tutoriales Linux >  >> Linux

¿Un trazador de líneas para crear contraseñas en Linux?

Depende de lo que entiendas por "legible". Si desea utilizar únicamente caracteres hexadecimales, necesitará 32 de ellos para alcanzar los 128 bits de entropía; esta línea funcionará (usando solo comandos del coreutils paquete):

head -c16 /dev/urandom | md5sum

Esta variante produce contraseñas con solo letras minúsculas, desde la 'a' hasta la 'p' (esto es lo que querrá si tiene que "escribir" la contraseña en un teléfono inteligente):

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

Si desea escribir un carácter menos, intente esto:

head -16 /dev/urandom | md5sum

(La probabilidad de obtener los primeros 16 bytes aleatorios como 0x0A, es decir, el carácter de "nueva línea", es 2, por lo que esta línea aún obtiene 128 bits de entropía).

Todavía te limitas a los comandos de coreutils , puedes hacer esto:

mktemp -u XXXXXXXXXXXXXXXXXXXXXX

Este genera una contraseña de 22 caracteres, usando /dev/urandom como fuente interna de aleatoriedad (revisé el código fuente y un strace llamada confirma). Los caracteres son letras (mayúsculas y minúsculas) y dígitos; como 62 es mayor que 2, los 22 caracteres son suficientes.

Otro más:

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

esto muestra ocho secuencias de cuatro dígitos hexadecimales. Podría decirse que esta división en pequeñas secuencias puede ayudar a leer.

Para una línea mucho más larga y un tipo de contraseña bastante distinto, intente esto:

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

(este solo funciona en un host de 64 bits; ¿notará por qué?). Aparte de coreutils , esa versión también requiere un archivo de diccionario, aquí el de inglés británico.


Algunas sugerencias fabulosas en las otras respuestas. Encuentro que makepasswd no está disponible en todas partes, y usar tr es (un poco) complicado, por lo que hay otra opción usando OpenSSL:

openssl rand -base64 16

El número es el número de bytes de aleatoriedad, por lo que 16 bytes para 128 bits de entropía.


Usando pwgen

El oneliner más simple de la historia:

pwgen

Intenta crear contraseñas que sean fáciles de recordar. Para deshabilitar eso y crear contraseñas más seguras, use el --secure o -s bandera.

pwgen -s

¿Las contraseñas generadas son demasiado largas? ¿Demasiado corto? Simplemente agregue la longitud deseada:

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

Herramientas similares

Resulta que conozco pwgen, hay otras herramientas por ahí. Puede encontrarlos usando la función de búsqueda de su distribución. En Debian esto es:

apt-cache search password generator

Hace una búsqueda exacta (aunque no distingue entre mayúsculas y minúsculas). Usando password generat en cambio, amplía la búsqueda.

Antes de instalar el paquete, puede ser útil ver su descripción. De nuevo en Debian:

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

Herramientas que pude encontrar de esta manera:

  • pwgen
  • makepasswd
  • apg
  • otp (destinado a almohadillas de un solo uso, no recomendado)
  • gpw (se centra en gran medida en la pronunciabilidad, no recomendado)

Uso de herramientas estándar de Unix

No todos los sistemas pueden tener pwgen disponible. Como otros han respondido, puede usar md5sum o sha256sum , pero eso solo genera 0-9 y a-f. Sin g-z o mayúsculas y minúsculas, y mucho menos caracteres especiales. Es mejor simplemente filtrar los caracteres no imprimibles de /dev/urandom hasta que tenga una contraseña de la longitud deseada:

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

Lo que da algo como XiVsdn[y o [email protected]^lY . Puedes cambiar el 8 al final para la longitud deseada de la contraseña. También puede cambiar el @-~ parte para limitar los caracteres. Por ejemplo, esto solo imprimirá caracteres alfanuméricos:

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

Esto es casi idéntico a lo que pwgen -s haría y da contraseñas como nZiUzNtE .

Como beneficio adicional, el tr La herramienta está incluida en casi todos los sistemas operativos (Mac OS X, GNU/Linux, Android/Linux, Solaris, FreeBSD, etc.) excepto Microsoft Windows.


Linux
  1. Generar contraseñas en la línea de comandos de Linux

  2. Cómo crear un script de un comando de Linux

  3. Cómo crear un intercambio en Linux

  4. Cómo crear un servicio Systemd en Linux

  5. Comando Linux ln

Cómo crear un archivo en Linux

Cómo crear accesos directos en el escritorio de Linux

Cómo crear un alias SSH en Linux

Cómo crear un alias en Linux

4 formas de crear un nuevo archivo en Linux

Crear una partición en Linux:una guía paso a paso