Maison  >  Article  >  Opération et maintenance  >  Comment générer des nombres aléatoires dans le système Linux

Comment générer des nombres aléatoires dans le système Linux

王林
王林original
2020-06-29 10:32:235740parcourir

La méthode utilisée par le système Linux pour générer des nombres aléatoires est la suivante : elle peut être obtenue via la variable d'environnement système [$RANDOM], telle que [echo $RANDOM]. RANDOM a une plage limitée de nombres aléatoires, qui peuvent être résolus en ajoutant une chaîne cryptée après le nombre aléatoire.

Comment générer des nombres aléatoires dans le système Linux

Il existe de nombreuses façons de générer des nombres aléatoires dans le système Linux. En voici quelques-unes :

(apprentissage recommandé : linux. tutoriel)

Méthode 1 : Implémentation via la variable d'environnement système ($RANDOM)

[root@test ~]# echo $RANDOM
11595
[root@test ~]# echo $RANDOM
21625

La plage de nombres aléatoires de RANDOM est de 0 à 32767, donc le cryptage n'est pas très bien . Il peut être résolu en ajoutant une chaîne cryptée (c'est-à-dire une chaîne liée à la génération du mot de passe) après le nombre aléatoire, et enfin en effectuant l'opération md5sum ensemble et en interceptant les n derniers chiffres du résultat. De cette manière, il ne peut pas être basé. sur la plage aléatoire 0 ~ 32767 Devinez le résultat spécifique.

Exemple :

[root@test ~]# echo "$RANDOM"|md5sum|cut -c 5-15
4eaf70019cc

Méthode 2 : Générer des nombres aléatoires via openssl

Exemple :

[root@test ~]# openssl rand -base64 8
yB0maNWRoQw=

Laissez le nombre be En combinant des caractères majuscules et minuscules et en ajoutant des caractères spéciaux, un grand nombre de chiffres peut être obtenu. De tels nombres aléatoires sont très sûrs.

Méthode 3 : obtenir des nombres aléatoires dans le temps (date)

Exemple :

[root@test ~]# date +%s%N
1523402619479946400
[root@test ~]# date +%s%N
1523402622015235600

Méthode 4 : coordonner avec /dev/urandom chksum génère des nombres aléatoires

[root@test ~]# head /dev/urandom|cksum
2866845253 2890
[root@test ~]# head /dev/urandom|cksum
2131526544 2440

/dev/random device stocke les données en temps réel de l'environnement d'exploitation actuel du système.

Il peut être considéré comme la valeur unique du système à un moment donné et peut donc être utilisé comme métadonnées aléatoires. Nous pouvons lire les données à l'intérieur en lisant le fichier. Les données de l'appareil /dev/urandom sont les mêmes que celles de random. Cependant, il s’agit d’un générateur de nombres aléatoires non bloquant et l’opération de lecture ne provoquera pas de blocage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Que signifie vim sous Linux ?Article suivant:Que signifie vim sous Linux ?