Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การสร้างสตริงสุ่มความยาวกำหนดใน Python

บทความนี้จะแสดงวิธีสร้างสตริงสุ่ม (Random string) ด้วยความยาวที่กำหนด ใช้ประโยชน์ในการสร้างรหัสผ่าน หรือโปรแกรมที่ต้องการความสุ่ม

วิธีที่ 1: ใช้ random.choices

ฟังก์ชัน random.choices (Python 3.6+) สามารถสุ่มหลายตัวพร้อมกันได้โดยระบุพารามิเตอร์ k เป็นจำนวนตัวอักษรที่ต้องการ

ตัวอย่าง

import string
import random

N = 5  # ความยาวสตริงที่ต้องการ
res = ''.join(random.choices(string.ascii_letters + string.digits, k=N))
print("Random string:", res)

ผลลัพธ์

Random string: nw1r8

วิธีที่ 2: ใช้ secrets.choice (ปลอดภัยกว่า)

โมดูล secrets ใช้สำหรับวัตถุประสงค์ด้านความปลอดภัย ใช้ secrets.choice ในลูป for แทน ซึ่งช้ากว่าเล็กน้อยแต่ปลอดภัยกว่าสำหรับรหัสผ่าน

ตัวอย่าง

import string
import secrets

N = 5
res = ''.join(secrets.choice(string.ascii_lowercase + string.digits) for i in range(N))
print("Random string:", res)

ผลลัพธ์

Random string: p4ylm

ข้อแตกต่าง: random ใช้ Mersenne Twister PRNG ซึ่งไม่เหมาะสำหรับคริปโตกราฟี ส่วน secrets ใช้ OS-level randomness (เช่น /dev/urandom) เหมาะสำหรับรหัสผ่าน Token และข้อมูลลับ

หมายเหตุ: ตัวอย่างวิธีที่ 2 จำกัดเฉพาะตัวพิมพ์เล็กและตัวเลข หากต้องการตัวพิมพ์ใหญ่เพิ่ม string.ascii_uppercase เข้าไป