Comment créer une chaîne aléatoire en Python?
J'avais besoin que ce soit un nombre puis un caractère répété jusqu'à ce que vous ayez terminé
def random_id(length):
number = '0123456789'
alpha = 'abcdefghijklmnopqrstuvwxyz'
id = ''
for i in range(0,length,2):
id += random.choice(number)
id += random.choice(alpha)
return id
Réponses:
Génération de chaînes à partir (par exemple) de caractères minuscules:
Résultats:
la source
randomword(length, source_alpha=string.lowercase)
etxrange(length)
, cependant.string.ascii_lowercase
os.urandom(length)
répond à la question d'origine et @sth avait mal lu l'esprit d'OP.random.choices
serait plus rapide.Puisque cette question est assez, euh, aléatoire, cela peut fonctionner pour vous:
la source
str(uuid.uuid4())
si vous souhaitez l'utiliser comme chaîne.str(uuid.uuid4()).split("-")[0]
Sortie:'4bcb6450'
la source
random.choice
n'est pas sécurisé non plus. Utilisezrandom.SystemRandom().choice()
ou utilisezos.urandom()
directement .lowercase
devrait être remplacé parascii_lowercase
Réponse à la question initiale:
Citation de: http://docs.python.org/2/library/os.html
la source
Vous pouvez créer des personnages ascii aléatoires comme:
Et puis construisez une chaîne plus longue comme:
la source
''.join(map(chr, random.randint(0,256) for _ in xrange(len)))
Vous n'avez pas vraiment dit grand-chose sur le type de chaîne aléatoire dont vous avez besoin. Mais dans tous les cas, vous devriez regarder dans le
random
module.Une solution très simple est collée ci-dessous.
la source
Parfois, j'ai voulu des chaînes aléatoires semi-prononcables, semi-mémorables.
Ensuite,
Pour éviter les mots de 4 lettres, ne définissez pas
length
sur 4.Jim
la source
la longueur doit être <= len (string.letters) = 53. exemple de résultat
Prendre plaisir. ;)
la source
Installez ce package:
Et utilisez ce code:
Plus d'informations sur la méthode, d'autres paramètres sont disponibles ici.
la source
Dans
python3.6+
vous pouvez utiliser lesecrets
module :En testant la génération de
768bit
jetons de sécurité, j'ai trouvé:random.choices()
-0.000246
secondessecrets.choice()
-0.003529
secondesLes
secrets
modules sont plus lents, mais en dehors des tests, c'est ce que vous devriez utiliser à des fins cryptographiques:la source
Cette fonction génère une chaîne aléatoire composée de lettres majuscules, minuscules, de chiffres, passez le séparateur de longueur, no_of_blocks pour spécifier votre format de chaîne
par exemple: len_sep = 4, no_of_blocks = 4 générera le motif suivant,
Où, le séparateur de longueur ajoutera "-" après 4 caractères
no of blocks générera le motif suivant de caractères sous forme de chaîne
si une seule chaîne aléatoire est nécessaire, gardez simplement la variable no_of_blocks égale à 1 et len_sep pour spécifier la longueur de la chaîne aléatoire.
par exemple: len_sep = 10, no_of_blocks = 1, générera le modèle suivant ie. chaîne aléatoire de longueur 10 ,
la source
sortie: FfxjmkyyLG5HvLeRudDS
la source
essayez d'importer le package ci-dessous à partir d'une importation aléatoire *
la source