เป็นข้อกำหนดทั่วไปที่จะต้องมีรหัสผ่านที่ซับซ้อนพอสมควร ในบทความนี้ เราจะมาดูวิธีการตรวจสอบว่ารหัสผ่านที่ให้มานั้นมีความซับซ้อนในระดับหนึ่งหรือไม่ เพื่อที่จะใช้โมดูลนิพจน์ปกติที่เรียกว่า re.
ตัวอย่าง -1
ขั้นแรก เราสร้างนิพจน์ทั่วไปซึ่งสามารถตอบสนองเงื่อนไขที่จำเป็นในการเรียกรหัสผ่านที่ถูกต้อง จากนั้นเราจับคู่รหัสผ่านที่กำหนดกับเงื่อนไขที่จำเป็นโดยใช้ฟังก์ชันการค้นหาของ re ในตัวอย่างด้านล่าง ข้อกำหนดความซับซ้อนคือ เราต้องการอักษรตัวพิมพ์ใหญ่อย่างน้อยหนึ่งตัว ตัวเลขหนึ่งตัว และอักขระพิเศษหนึ่งตัว นอกจากนี้เรายังต้องการความยาวของรหัสผ่านที่จะอยู่ระหว่าง 8 ถึง 18
ตัวอย่าง
import re pswd = 'XdsE83&!' reg = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!#%*?&]{8,18}$" # compiling regex match_re = re.compile(reg) # searching regex res = re.search(match_re, pswd) # validating conditions if res: print("Valid Password") else: print("Invalid Password")
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Valid Password
ตัวอย่าง -2
ในตัวอย่างนี้ เราใช้รหัสผ่านที่ไม่ตรงตามเงื่อนไขที่กำหนดทั้งหมด เช่น ไม่มีตัวเลขในรหัสผ่าน ในกรณีนั้นโปรแกรมจะระบุว่าเป็นรหัสผ่านที่ไม่ถูกต้อง
ตัวอย่าง
import re pswd = 'XdsEfg&!' reg = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?& ])[A-Za-z\d@$!#%*?&]{8,18}$" # compiling regex match_re = re.compile(reg) # searching regex res = re.search(match_re, pswd) # validating conditions if res: print("Valid Password") else: print("Invalid Password")
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Invalid Password