Obtener cadenas aleatorias

Programacion en Bash

Moderadores: frank, dxfiles

Responder
Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Obtener cadenas aleatorias

Mensaje por hugo » Jue, 28 Abr 2011, 17:19

Como podria hacer un script en bash para obtener cadenas de texto aleatorias (como de las que pueden utilizarse para una contraseña) de una longitud que yo defina como primer argumento?

Como tono jocoso, una vez vi (creo que en slashdot) una graciosa recomendación para obtener cadenas de texto aleatorias:

Abrir vim en la consola, y decirle a un usuario novato en Linux que intente cerrarlo. :D
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Avatar de Usuario
KZKG^Gaara
Mensajes: 463
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: /dev/kzkggaara
Contactar:

Re: Obtener cadenas aleatorias

Mensaje por KZKG^Gaara » Jue, 28 Abr 2011, 17:21

hugo escribió:Como podria hcer un script en bash para obtener cadenas de texto aleatorias (como de las que pueden utilizarse para una contraseña) de una longitud que yo defina como primer argumento?

Como tono jocoso, una vez vi (creo que en slashdot) una graciosa recomendación para obtener cadenas de texto aleatorias:

Abrir vim en la consola, y decirle a un usuario novato en Linux que intente cerrarlo. :D
Algo como pwgen ??

http://sourceforge.net/projects/pwgen/
~~» KZKG^Gaara «~~
Usuario #518082 de GNU/Linux
Windows ha detectado que no tiene teclado... presione [F9] para continuar.

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Obtener cadenas aleatorias

Mensaje por hugo » Jue, 28 Abr 2011, 22:51

KZKG^Gaara escribió:Algo como pwgen ??
Quizás, el problema es que eso está programado en C. Mi interés era mas bien para estudiar la manera en que funciona la generación y manipulación de cadenas aleatorias en bash. Utilidades para generar contraseñas hay muchas; es mas, hace tiempo yo mismo hice una herramientica de este tipo en Delphi para poner en práctica un tutorial de máscaras que vi por alguna parte.

En fin, ya hice unas búsquedas y encontré más de una solución. Gracias de todas formas.
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Avatar de Usuario
yosle
Mensajes: 110
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: /usr/sbin/yosle
Contactar:

Re: Obtener cadenas aleatorias

Mensaje por yosle » Vie, 29 Abr 2011, 08:13

Código: Seleccionar todo


#!/bin/bash


MAXSIZE=62


array1=(


q w e r t y u i o p a s d f g h j k l z x c v b n m Q W E R T Y U I O P A S D


F G H J K L Z X C V B N M 1 2 3 4 5 6 7 8 9 0 \! \@ \# \$ \% \^ \& \* \( \)


\! \@ \# \$ \% \^ \& \* \( \) \! \@ \# \$ \% \^ \& \* \( \) \! \@ \# \$ \%


)


MODNUM=${#array1[*]}


pwd_len=0


while [ $pwd_len -lt $MAXSIZE ]


do


    index=$(($RANDOM%$MODNUM))


    echo -n "${array1[$index]}"


    ((pwd_len++))


done


echo


exit 0

Esto genera cadenas semi-aleatorias ,pero sirve como ejercicio de programacion , para generar claves ,mejor me gusta esta otra:

Código: Seleccionar todo

uuidgen | cut -c-50

Avatar de Usuario
williansvi
Mensajes: 51
Registrado: Sab, 07 Ago 2010, 14:09

Re: Obtener cadenas aleatorias

Mensaje por williansvi » Vie, 29 Abr 2011, 10:54

pwgen

I'ts so easy...
perl -e 'print $i=pack(c5,(41*2),sqrt(7056),(unpack(c,H)-2),oct(115),10);'

Avatar de Usuario
hugo
Mensajes: 1430
Registrado: Sab, 07 Ago 2010, 14:09
Ubicación: La Habana
Contactar:

Re: Obtener cadenas aleatorias

Mensaje por hugo » Vie, 29 Abr 2011, 11:12

Gracias yosle, algo como eso era a lo que me refería.
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke

Responder