Bagaimana Anda membuat string acak dengan Python?
Saya membutuhkannya menjadi angka kemudian karakter ulangi sampai Anda selesai ini adalah apa yang saya buat
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
Jawaban:
Menghasilkan string dari (misalnya) karakter huruf kecil:
Hasil:
sumber
randomword(length, source_alpha=string.lowercase)
danxrange(length)
, meskipun.string.ascii_lowercase
os.urandom(length)
menjawab pertanyaan asli dan @sth salah membaca pikiran OP.random.choices
akan lebih cepat.Karena pertanyaan ini cukup, eh, acak, ini mungkin berhasil untuk Anda:
sumber
str(uuid.uuid4())
jika Anda ingin menggunakannya sebagai string.str(uuid.uuid4()).split("-")[0]
Keluaran:'4bcb6450'
sumber
random.choice
juga tidak aman. Gunakanrandom.SystemRandom().choice()
atau gunakanos.urandom()
secara langsung .lowercase
harus diganti denganascii_lowercase
Jawaban untuk pertanyaan awal:
Kutipan dari: http://docs.python.org/2/library/os.html
sumber
Anda dapat membangun karakter ascii acak seperti:
Dan kemudian buat string yang lebih panjang seperti:
sumber
''.join(map(chr, random.randint(0,256) for _ in xrange(len)))
Anda belum benar-benar mengatakan banyak tentang jenis string acak yang Anda butuhkan. Namun bagaimanapun, Anda harus melihat ke file
random
modul.Solusi yang sangat sederhana ditempel di bawah ini.
sumber
Terkadang, saya menginginkan string acak yang semi-diucapkan, semi-mudah diingat.
Kemudian,
Untuk menghindari kata 4 huruf, jangan setel
length
ke 4.Jim
sumber
panjangnya harus <= len (string.letters) = 53. contoh hasil
Nikmati. ;)
sumber
Instal paket ini:
Dan gunakan kode ini:
Informasi lebih lanjut tentang metode parameter lain tersedia di sini.
sumber
Di
python3.6+
Anda dapat menggunakansecrets
modul :Dalam pengujian pembuatan
768bit
token keamanan, saya menemukan:random.choices()
-0.000246
detiksecrets.choice()
-0.003529
detikThe
secrets
modul lebih lambat tetapi di luar dari pengujian itu adalah apa yang seharusnya Anda menggunakan untuk tujuan kriptografi:sumber
Fungsi ini menghasilkan string acak yang terdiri dari huruf besar, huruf kecil, angka, melewati pemisah panjang, no_of_blocks untuk menentukan format string Anda
misal: len_sep = 4, no_of_blocks = 4 akan menghasilkan pola berikut,
Dimana, pemisah panjang akan menambahkan "-" setelah 4 karakter
tidak ada blok yang akan menghasilkan pola karakter berikut sebagai string
jika satu string acak diperlukan, pertahankan variabel no_of_blocks sama dengan 1 dan len_sep untuk menentukan panjang string acak.
misal: len_sep = 10, no_of_blocks = 1, akan menghasilkan pola sebagai berikut. string acak dengan panjang 10 ,
sumber
keluaran: FfxjmkyyLG5HvLeRudDS
sumber
coba impor paket di bawah ini dari impor acak *
sumber