Le Thu, 14 Nov 2002 01:14:14 +0100
anne.aublanc@??? écrivait :
> bonjour,
>
> y-a qq'un pour me traduire ces 2 lignes de perl?
>
> @chars = ( "A" .. "Z", "a" .. "z", 0 .. 9, qw(! @ $ % ^ & *)
> );
@char est une liste comprenant tous les caractères compris entre A et Z,
a et z, 0 et 9 ainsi que les caractères ! @ $ % ^ & * (soit, grosso
modo, tous les caractères ASCII ;-) )
> $unique_key = join("", @chars[ map { rand @chars } ( 1 .. 31 ) ]);
>
$unique_key est un ensemble scalaire, pris « au hasard » dans la liste
précédente, de longueur 32.
C'est une façon comme une autre de fabriquer des clés de 32 caractères
ASCII aléatoires pour faire des mots de passe par exemple.
> Comment $unique_key peut-être unique?
Il ne l'est pas car dépendant de rand qui est un générateur de nombre
aléatoire de Perl. Comme tous les générateurs « aléatoires »
informatiques, ils n'ont d'aléatoires que le nom.
Par contre, on peut compter sur Larry Wall pour qu'il soit presque
aléatoire, c'est-à-dire que la probabilité de retomber sur la même
chaîne soit quasi-nulle.
PK
--
Patrice KARATCHENTZEFF
STMicroelectronics Tel: 04-76-92-63-81
850, rue Jean Monnet
38926 CROLLES Cedex, France Courriel: patrice.karatchentzeff@???