2009-04-29 30 views
5

Tenemos que importar automáticamente una gran lista de usuarios con algunos datos en un sistema en ejecución. Para una contraseña inicial, deseo actualizar la lista (formato csv en este momento) con una clave alfanumérica aleatoria (8 dígitos).¿Cómo debo generar una contraseña inicial alfanumérica aleatoria para nuevos usuarios?

Al insertarlo con una rutina especial (que necesita un archivo csv), la contraseña (en este caso, la clave alfanumérica) se almacena como un hash md5.

es decir, que generan una clave alfanumérica aleatoria:

H2A5D39A -> MD5: 1642fccf791f15d137cf31282af79752 

De esta manera quiero crear una lista donde los usuarios autenticados me puede pedir su contraseña inicial (la tecla alfanumérica).

¿Tiene una mejor idea para una contraseña inicial "secreta"?

¿Cómo crearía la clave alfanumérica en Perl?

P.S .: El "sistema funcionando", no programado por nosotros, sólo allowes contraseñas alfanuméricas (sin caracteres especiales, ...)

Respuesta

15

¿Cómo crear la clave alfanumérica en Perl?

join '', mapa + (0..9, 'a' .. 'z', 'A' .. 'Z') [rand (10 + 26 * 2)], 1 .. 8

+0

1 agradable un trazador de líneas – dfa

+0

Cuidado con las similitudes entre I, L, y 1 y 0 y O. Se manejan fácilmente asignando su lista de caracteres a una matriz, y luego haciendo: join '', map $ chars [rand @chars], 1..8; – daotoad

6

Probablemente usaría pwgen. Es genial, ya que permite una fácil personalización, y tiene el interruptor para no utilizar caracteres ambiguos (piense: I, l, 1, O, 0).

por ejemplo:

=> pwgen -c -n -B 8 50 
shuFak9o peiCh3Oo ohPieng9 Vohh7zuu os3Theep aeV9nuo9 aexeik4B aeChoh9s 
uth3eePu baePhu3o aiS3pahn iPie4itu We9zuphi xie3Chi3 yeiRoo7c fai3ITai 
aCh9ohco Echuab7v Fu9ahCho Aevae4no Peethai9 AiJio3Pa aeNge9Fo baePh7Uy 
Nai7shei eeMoh9en Zeibai4n eGe7yuch Jaek7nai aeZah7sh Chei4ua4 shoo9oG9 
iu7Wohho aep7De4U Fong9fo3 AhneeP7U oxae7Yoh ahF4eim3 fahm9Aiw naoNg4ie 
Chie4xua jix3Uvot aChei7ai diey4Shi Yur7ee4j eeJeo9ee Bou3ahmu kaeb4Cah 
Eh4Eemae oD4phoo9 
1

respuesta de Anonymous es muy bueno, pero, si necesita una cadena aleatoria que se ajusta a unas normas (como al menos una mayúscula, una minúscula y un número), se Puede querer mirar en String::Random.

Cuestiones relacionadas