Cách tạo một trình tạo mật khẩu ngẫu nhiên bằng Python

Spread the love

An ninh là một trong những phần quan trọng nhất trong cuộc sống của chúng ta. Tầm quan trọng của bảo mật đang tăng lên từng ngày vì hầu hết mọi thứ đều trực tuyến. Mật khẩu được đưa ra ánh sáng khi chúng ta nói về bảo mật.

Trong bài viết này, chúng tôi sẽ tạo một trình tạo mật khẩu giúp chúng tôi tạo ra các mật khẩu mạnh và ngẫu nhiên một cách nhanh chóng.

Tại sao chúng ta cần một trình tạo mật khẩu?

Bởi vì chúng tôi không thể nghĩ ra các mẫu mật khẩu khác nhau ngay lập tức.

Nhưng, nó không phải là trường hợp tương tự với máy tính. Máy tính có thể tạo mật khẩu ngẫu nhiên và mạnh dựa trên các tùy chỉnh của chúng tôi trong vài giây. Có rất nhiều trình tạo mật khẩu có sẵn.

Chúng tôi có thể tạo riêng của chúng tôi với các tùy chỉnh mà chúng tôi thích không?

Vâng, chúng tôi chắc chắn có thể tạo ra một cái. Và ở đây chúng tôi sẽ hướng dẫn bạn cách thực hiện điều đó.

Hãy tạo một trình tạo mật khẩu.

Trình tạo mật khẩu 💻

Điều tốt nhất về việc tạo trình tạo mật khẩu của riêng chúng tôi là chúng tôi có thể tùy chỉnh nó theo ý muốn.

Đầu tiên, chúng ta sẽ tạo một trình tạo mật khẩu hỏi độ dài của mật khẩu và tạo một mật khẩu ngẫu nhiên có chứa các chữ số, bảng chữ cái và các ký tự đặc biệt.

Tiếp theo, chúng tôi sẽ cải thiện nó bằng cách hỏi số lượng của từng loại ký tự, như số lượng chữ số, bảng chữ cái và ký tự đặc biệt.

  Cách tắt thông báo đã đọc và nhập cảnh báo cho tin nhắn LinkedIn

Vì vậy, chúng ta hãy xem các bước để tạo một trình tạo mật khẩu bằng Python.

Các bước

  • Lưu trữ tất cả các ký tự dưới dạng danh sách. Chúng ta có thể sử dụng mô-đun chuỗi của Python hoặc nhập tất cả chúng.
  • Yêu cầu người dùng nhập độ dài của mật khẩu.
  • Xáo trộn các ký tự bằng phương thức random.shuffle.
  • Khởi tạo một danh sách trống để lưu trữ mật khẩu.
  • Viết một vòng lặp lặp lại thời gian độ dài.
    • Chọn một ký tự ngẫu nhiên từ tất cả các ký tự bằng phương pháp random.choice.
    • Nối ký tự ngẫu nhiên vào mật khẩu.
  • Xáo trộn danh sách mật khẩu kết quả để làm cho nó ngẫu nhiên hơn.
  • Chuyển đổi danh sách mật khẩu thành chuỗi bằng cách sử dụng phương pháp nối.
  • In mật khẩu.

Làm theo các bước trên và cố gắng viết mã. Đừng lo lắng, ngay cả khi bạn không thể viết mã. Kiểm tra mã dưới đây.

Mã số

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()

Đoạn mã trên là tự giải thích. Chúng tôi vừa làm theo các bước được mô tả để viết mã. Vì vậy, bạn sẽ không tìm thấy bất kỳ vấn đề nào trong việc hiểu mã nếu bạn đọc các bước.

Bây giờ, hãy chạy mã và tạo mật khẩu. Một ví dụ đầu ra sẽ như sau.

Enter password length: 10
d&amIzK%d)

Quan sát mật khẩu trong đầu ra ở trên. Có chữ số nào không? Không. Vì không có gì đảm bảo rằng chương trình sẽ bao gồm các chữ số.

  Cách tải lời bài hát trong cửa sổ nổi cho bản nhạc Spotify hiện tại

Tiếp theo, chúng tôi cố gắng đảm bảo rằng chương trình sẽ bao gồm các chữ số và ký tự đặc biệt bằng cách yêu cầu người dùng nhập số lượng chữ số, bảng chữ cái và ký tự đặc biệt mà họ muốn.

Khi người dùng nhập số lượng ký tự cho từng loại, chương trình sẽ đưa số lượng ký tự tương ứng vào mật khẩu.

Hãy xem đoạn mã chấp nhận số ký tự cho mỗi loại và tạo mật khẩu.

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()

Vì vậy, sự khác biệt giữa mã trước đó và mã này là gì?

  • Chúng tôi đã viết các vòng lặp riêng biệt cho từng loại ký tự để thêm chúng vào mật khẩu.
  • Có hai kiểm tra có điều kiện để xác nhận tổng số ký tự đếm được với độ dài mật khẩu.

Chúng tôi đã thêm một số mã bổ sung. Tuy nhiên, mô hình tương tự như mã trước đó. Vì vậy, bạn sẽ không cảm thấy khó khăn khi hiểu nó.

  Cách đếm số bước trên iPhone và Apple Watch

Bây giờ, đã đến lúc thực thi và kiểm tra kết quả đầu ra. Nhìn vào quá trình chạy thử nghiệm sau đây.

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

Nếu bạn thấy mật khẩu được tạo lần này, nó có số ký tự tối thiểu mà người dùng muốn. Và chương trình đã đưa thêm 2 ký tự ngẫu nhiên vào để độ dài mật khẩu bằng với người dùng nhập vào.

Tiếng hoan hô! chúng tôi có một trình tạo mật khẩu mạnh hoàn chỉnh. 😎

Sự kết luận

Chúng tôi đã thấy cách tạo trình tạo mật khẩu từ đầu. Chúng ta có thể thêm nhiều tính năng hơn vào nó không? Vâng, chúng tôi có thể thêm bao nhiêu tùy thích. Tuy nhiên, hãy đảm bảo rằng mật khẩu kết quả đủ mạnh.

Tạo mật khẩu từ mã và sử dụng chúng cho tài khoản trực tuyến tiếp theo của bạn.

Trong khi bạn làm điều đó, hãy sử dụng Trình tạo mật khẩu ngẫu nhiên techpoe.com để tạo mật khẩu an toàn.

Tìm hiểu cách viết bằng hoặc không bằng mã và cách xây dựng trò chơi tic-tac-toe bằng Python.

Chúc bạn mã hóa vui vẻ! 👩‍💻

x