Foros del Web » Administración de Sistemas » Unix / Linux »

[SOLUCIONADO] generar claves aleatorias de 10 digitos con perl

Estas en el tema de generar claves aleatorias de 10 digitos con perl en el foro de Unix / Linux en Foros del Web. Hola a todos. Alguien sabe como generar claves aleatorias en perl de consola lo que quiero es generar claves aleatorias con estos numeros, pero solo ...
  #1 (permalink)  
Antiguo 17/07/2014, 12:39
Avatar de Melecio  
Fecha de Ingreso: julio-2011
Ubicación: Coahuila
Mensajes: 320
Antigüedad: 12 años, 9 meses
Puntos: 8
Hola a todos.

Alguien sabe como generar claves aleatorias en perl de consola

lo que quiero es generar claves aleatorias con estos numeros, pero solo 10 digitos utilizando esto como base.
0 1 2 3 4 5 6 7 8 9 A B C D E F

solo hexadecimales


Gracias.

algo así

#!/usr/bin/perl
@caracteres = qw (0 1 2 3 4 5 6 7 8 9 A B C D E F);
for ($x=0;$x<=10;$x++){
$rand = int(rand( @caracteres));
$caracter_rand = $caracteres[$rand];
print "$caracter_rand\n";
}

solo que imprima 10 dígitos y solo me imprime 1

esta es mi solucion rapida



@HEX1 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);
@HEX2 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);
@HEX3 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);
@HEX4 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);
@HEX5 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);
@HEX6 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);
@HEX7 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);
@HEX8 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);
@HEX9 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);
@HEX10 = qw (0 1 2 3 4 5 6 7 8 9 a b c d e f);

$RANDHEX1 = rand( @HEX1);
$PRINTHEX1 = $HEX1[$RANDHEX1];
$RANDHEX2 = rand( @HEX2);
$PRINTHEX2 = $HEX2[$RANDHEX2];
$RANDHEX3 = rand( @HEX3);
$PRINTHEX3 = $HEX3[$RANDHEX3];
$RANDHEX4 = rand( @HEX4);
$PRINTHEX4 = $HEX4[$RANDHEX4];
$RANDHEX5 = rand( @HEX5);
$PRINTHEX5 = $HEX5[$RANDHEX5];
$RANDHEX6 = rand( @HEX6);
$PRINTHEX6 = $HEX6[$RANDHEX6];
$RANDHEX7 = rand( @HEX7);
$PRINTHEX7 = $HEX7[$RANDHEX7];
$RANDHEX8 = rand( @HEX8);
$PRINTHEX8 = $HEX8[$RANDHEX8];
$RANDHEX9 = rand( @HEX9);
$PRINTHEX9 = $HEX9[$RANDHEX9];
$RANDHEX10 = rand( @HEX10);
$PRINTHEX10 = $HEX4[$RANDHEX10];

print "$PRINTHEX1 $PRINTHEX2 $PRINTHEX3 $PRINTHEX4 $PRINTHEX5 $PRINTHEX6 $PRINTHEX7 $PRINTHEX8 $PRINTHEX9 $PRINTHEX10 \n";



gracias

Última edición por BrujoNic; 17/07/2014 a las 14:37
  #2 (permalink)  
Antiguo 17/07/2014, 18:38
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 17 años, 11 meses
Puntos: 11
Respuesta: generar claves aleatorias de 10 digitos con perl

Lo puedes hacer con un programa muy corto. Incluso desde la propia línea de comandos:

Código Perl:
Ver original
  1. perl -le '@c = (1 .. 9, "A" .. "F"); print join "", map { $c[rand @c] } 1 .. 10'
Primero creamos el array @c, y luego ejecutamos el map{} diez veces. En cada ocasión generamos un número al azar entre 0 (incluido) y el número de elementos que tiene @c (excluido). Ese número lo tomamos como índice dentro @c para obtener un carácter. La lista de caracteres aleatorios se envían a join(), que los une juntos (no hay delimitador de unión), y vemos el resultado en pantalla con el print().

Saludos.
__________________
JF^D Perl Programming en Español

Última edición por jferrero; 17/07/2014 a las 18:45

Etiquetas: claves, digitos, perl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:35.