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