จะสร้างตัวสร้างรหัสผ่านโดยใช้ Python ได้อย่างไร

เผยแพร่แล้ว: 2021-08-20

การรักษาความปลอดภัยเป็นส่วนที่สำคัญที่สุดในชีวิตของเรา ความสำคัญของการรักษาความปลอดภัยเพิ่มขึ้นทุกวันเนื่องจากสิ่งต่าง ๆ ส่วนใหญ่ออนไลน์ รหัสผ่านมีความสำคัญเมื่อเราพูดถึงความปลอดภัย

ในบทความนี้ เราจะสร้างเครื่องมือสร้างรหัสผ่านที่ช่วยให้เราสร้างรหัสผ่านแบบสุ่มและคาดเดายากได้อย่างรวดเร็ว

ทำไมเราถึงต้องการตัวสร้างรหัสผ่าน?

เพราะเราไม่สามารถนึกถึงรูปแบบต่างๆ ของรหัสผ่านได้ในทันที

แต่มันไม่ใช่กรณีเดียวกันกับคอมพิวเตอร์ คอมพิวเตอร์สามารถสร้างรหัสผ่านแบบสุ่มและคาดเดายากตามการปรับแต่งของเราในไม่กี่วินาที มีตัวสร้างรหัสผ่านมากมาย

เราสามารถสร้างของเราเองด้วยการปรับแต่งที่เราชอบได้หรือไม่?

ใช่ เราสร้างมันขึ้นมาได้อย่างแน่นอน และที่นี่เราจะแสดงให้คุณเห็นว่าต้องทำอย่างไร

มาสร้างเครื่องสร้างรหัสผ่านกัน

ตัวสร้างรหัสผ่าน

สิ่งที่ดีที่สุดเกี่ยวกับการสร้างตัวสร้างรหัสผ่านของเราเองคือ เราสามารถปรับแต่งมันได้ตามต้องการ

ขั้นแรก เราจะสร้างตัวสร้างรหัสผ่านที่ถามความยาวของรหัสผ่าน และสร้างรหัสผ่านแบบสุ่มซึ่งประกอบด้วยตัวเลข ตัวอักษร และอักขระพิเศษ

ต่อไปเราจะปรับปรุงโดยถามจำนวนอักขระแต่ละประเภท เช่น จำนวนหลัก ตัวอักษร และอักขระพิเศษ

มาดูขั้นตอนการสร้างตัวสร้างรหัสผ่านโดยใช้ Python กัน โดยไม่ต้องกังวลใจอีกต่อไป

ขั้นตอน

  • เก็บตัวอักษรทั้งหมดเป็นรายการ เราสามารถใช้โมดูลสตริงของ Python หรือพิมพ์ทั้งหมด
  • ขอให้ผู้ใช้ป้อนความยาวของรหัสผ่าน
  • สับเปลี่ยนอักขระโดยใช้วิธี random.shuffle
  • เริ่มต้นรายการว่างเพื่อเก็บรหัสผ่าน
  • เขียนลูปที่วนซ้ำ length
    • เลือกอักขระแบบสุ่มจากอักขระทั้งหมดโดยใช้วิธี random.choice
    • ต่อท้ายอักขระสุ่มกับรหัสผ่าน
  • สุ่มรายการรหัสผ่านที่เป็นผลลัพธ์เพื่อให้เป็นแบบสุ่มมากขึ้น
  • แปลงรายการรหัสผ่านเป็นสตริงโดยใช้วิธีการ join
  • พิมพ์รหัสผ่าน

ทำตามขั้นตอนข้างต้นแล้วลองเขียนโค้ด ไม่ต้องกังวล แม้ว่าคุณจะไม่สามารถเขียนโค้ดได้ ตรวจสอบรหัสด้านล่าง

รหัส

 import string import random ## characters to generate password from characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## shuffling the characters random.shuffle(characters) ## picking random characters from the list password = [] for i in range(length): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

รหัสข้างต้นเป็นตัวอธิบาย เราเพิ่งทำตามขั้นตอนที่อธิบายไว้ในการเขียนโค้ด ดังนั้น คุณจะไม่พบปัญหาใดๆ ในการทำความเข้าใจโค้ดหากคุณอ่านขั้นตอนต่างๆ

ตอนนี้ เรียกใช้รหัสและสร้างรหัสผ่าน ตัวอย่างผลลัพธ์จะเป็นดังนี้

 Enter password length: 10 d&amIzK%d)

สังเกตรหัสผ่านในผลลัพธ์ด้านบน มีเลขอะไรมั้ย? ไม่ได้ เพราะไม่มีหลักประกันว่าโปรแกรมจะรวมตัวเลข

ต่อไป เราพยายามรับประกันว่าโปรแกรมจะรวมตัวเลขและอักขระพิเศษ โดยขอให้ผู้ใช้ป้อนจำนวนหลัก ตัวอักษร และอักขระพิเศษที่ต้องการ

เมื่อผู้ใช้ป้อนจำนวนอักขระสำหรับแต่ละประเภท โปรแกรมจะรวมจำนวนอักขระตามลำดับลงในรหัสผ่าน

มาดูรหัสที่รับจำนวนตัวอักษรแต่ละประเภทและสร้างรหัสผ่านกัน

 import string import random ## characters to generate password from alphabets = list(string.ascii_letters) digits = list(string.digits) special_characters = list("[email protected]#$%^&*()") characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## number of character types alphabets_count = int(input("Enter alphabets count in password: ")) digits_count = int(input("Enter digits count in password: ")) special_characters_count = int(input("Enter special characters count in password: ")) characters_count = alphabets_count + digits_count + special_characters_count ## check the total length with characters sum count ## print not valid if the sum is greater than length if characters_count > length: print("Characters total count is greater than the password length") return ## initializing the password password = [] ## picking random alphabets for i in range(alphabets_count): password.append(random.choice(alphabets)) ## picking random digits for i in range(digits_count): password.append(random.choice(digits)) ## picking random alphabets for i in range(special_characters_count): password.append(random.choice(special_characters)) ## if the total characters count is less than the password length ## add random characters to make it equal to the length if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()

ดังนั้นความแตกต่างระหว่างรหัสก่อนหน้าและรหัสนี้คืออะไร?

  • เราได้เขียนลูปแยกกันสำหรับอักขระแต่ละประเภทเพื่อเพิ่มลงในรหัสผ่าน
  • มีการตรวจสอบตามเงื่อนไขสองครั้งเพื่อตรวจสอบจำนวนอักขระทั้งหมดที่มีความยาวรหัสผ่าน

เราได้เพิ่มรหัสพิเศษบางอย่าง แต่รูปแบบจะคล้ายกับรหัสก่อนหน้า ดังนั้น คุณจะไม่พบปัญหาใดๆ ในการทำความเข้าใจ

ตอนนี้ได้เวลาดำเนินการและตรวจสอบผลลัพธ์แล้ว ดูการทดสอบการทำงานต่อไปนี้

 Enter password length: 10 Enter alphabets count in password: 3 Enter digits count in password: 2 Enter special characters count in password: 3 V2(&#XlQq1

หากคุณเห็นรหัสผ่านที่สร้างขึ้นในครั้งนี้ แสดงว่ามีจำนวนอักขระขั้นต่ำที่ผู้ใช้ต้องการ และโปรแกรมได้รวมอักขระสุ่มอีก 2 ตัวเพื่อให้ความยาวรหัสผ่านเท่ากับการป้อนข้อมูลของผู้ใช้

เย่! เรามีตัวสร้างรหัสผ่านที่รัดกุมที่สมบูรณ์

บทสรุป

เราได้เห็นวิธีการสร้างตัวสร้างรหัสผ่านตั้งแต่เริ่มต้น เราสามารถเพิ่มคุณสมบัติเพิ่มเติมได้หรือไม่? ใช่ เราสามารถเพิ่มได้มากเท่าที่เราต้องการ แต่ตรวจสอบให้แน่ใจว่ารหัสผ่านผลลัพธ์นั้นรัดกุมเพียงพอ

สร้างรหัสผ่านจากรหัสและใช้สำหรับบัญชีออนไลน์ครั้งต่อไปของคุณ

ต่อไป ค้นหาวิธีสร้างเกมโอเอกซ์ใน Python

มีความสุขในการเข้ารหัส!