paint-brush
Cách tạo trình tạo mật khẩu ngẫu nhiên bằng Pythontừ tác giả@terieyenike
30,831 lượt đọc
30,831 lượt đọc

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

từ tác giả Teri4m2022/09/03
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Sử dụng mật khẩu an toàn khi đăng nhập là điều cần thiết để ngăn chặn kẻ xấu (tin tặc) xâm nhập vào tài khoản của bạn. Bài viết này sẽ hướng dẫn bạn cách tạo một trình tạo mật khẩu ngẫu nhiên bằng Python. Chúng tôi sẽ sử dụng phương pháp này: Viết ra tất cả các loại ký tự mật khẩu được chấp nhận, chẳng hạn như chữ cái, số và ký hiệu. Cung cấp cho người dùng khả năng nhập số lượng chữ cái, ký hiệu và số cho mật khẩu đã tạo. Xếp thứ tự các ký tự một cách ngẫu nhiên để khó đoán được mật khẩu.
featured image - Cách tạo trình tạo mật khẩu ngẫu nhiên bằng Python
Teri HackerNoon profile picture


Mỗi trang web đều có một số dạng giao diện bảo mật yêu cầu xác thực người dùng. Các hình thức này thường sử dụng email và mật khẩu của bạn để truy cập trang web. Sử dụng mật khẩu an toàn khi đăng nhập là điều cần thiết để ngăn chặn kẻ xấu (tin tặc) xâm nhập vào tài khoản của bạn.


Bài viết này sẽ hướng dẫn bạn cách tạo trình tạo mật khẩu ngẫu nhiên bằng Python bằng cách tạo kết hợp các chữ cái, số và ký hiệu dưới dạng các ký tự xáo trộn với nhau, gây khó khăn cho việc bẻ khóa hoặc đoán mật khẩu.


Hãy cùng nhau xây dựng một trình tạo mật khẩu ngẫu nhiên.


Bắt đầu

Để tạo một trình tạo mật khẩu ngẫu nhiên, chúng tôi sẽ sử dụng phương pháp này:

  • Viết ra tất cả các loại ký tự mật khẩu được chấp nhận, chẳng hạn như chữ cái, số và ký hiệu
  • Cung cấp cho người dùng khả năng nhập số chữ cái, ký hiệu và số cho mật khẩu đã tạo
  • Xếp thứ tự các ký tự ngẫu nhiên để khó đoán


Tạo trình tạo mật khẩu ngẫu nhiên

Như bạn đã biết, một số ứng dụng trên internet đề xuất mật khẩu ngẫu nhiên khi bạn tạo tài khoản mới. Các ký tự ngẫu nhiên do bạn quyết định và có thể dài tới tám ký tự.


Tạo một tệp mới, main.py , để viết các tập lệnh cho ứng dụng.


 # main.py letters = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] print("Welcome to the PyPassword Generator!") nr_letters = int(input("How many letters would you like in your password?\n")) nr_symbols = int(input(f"How many symbols would you like?\n")) nr_numbers = int(input(f"How many numbers would you like?\n"))


Các ký tự từ khối mã trên tạo nên sự kết hợp của trình tạo mật khẩu được trình bày trong một danh sách.


Tiếp theo là đảm bảo rằng người dùng có thể nhập một hình, một số nguyên đại diện cho số lần một ký tự sẽ xuất hiện khi kết quả cuối cùng được hiển thị và khai báo với một biến.


\n : biểu thị rằng giá trị đầu vào sẽ chuyển đến dòng sau


Bây giờ, hãy cập nhật phần còn lại của mã. Sao chép và dán nội dung sau:


 # main.py # Password Generator Project import random # add this # letters, numbers, and symbols lists # users' input for the amount of characters # add these below password_list = [] for char in range(1, nr_letters + 1): password_list.append(random.choice(letters)) for char in range(1, nr_symbols + 1): password_list.append(random.choice(numbers)) for char in range(1, nr_numbers + 1): password_list.append(random.choice(symbols)) random.shuffle(password_list)


Khối mã thực hiện những việc sau:

  • Nhập random có sẵn mà mô-đun được sử dụng để tạo số ngẫu nhiên
  • Tạo danh sách trống [] với biến, password_list
  • Lặp lại thông qua số trong hàm phạm vi để tạo một chuỗi số từ chỉ mục bắt đầu và kết thúc bằng chỉ mục cuối cùng cộng với 1
  • Tiếp theo, nối danh sách trống để nhận một phần tử được chọn ngẫu nhiên bằng cách sử dụng phương thức random.choice() cho mỗi biến được khai báo của ký tự
  • Trộn password_list mới tạo để thay đổi vị trí của các phần tử mỗi khi có mật khẩu mới bằng phương thức .shuffle()


Chuyển đổi danh sách mật khẩu thành chuỗi

Sao chép và cập nhật mã sau:


 # main.py # import # letters, numbers, and symbols lists # users' input for the amount of characters # randomize characters # add this password = "" for char in password_list: password += char # convert list to string pwd = ''.join(password_list) print(f"Your random password to use is: {pwd}")


Quá trình chuyển đổi một danh sách thành một chuỗi như sau:

  • Tạo một biến chuỗi trống, password
  • Lặp lại danh sách mật khẩu bằng từ khóa for
  • Nối các chuỗi mật khẩu với biến char vòng lặp
  • Sử dụng phương thức .join() để thay đổi danh sách lặp từ danh sách mật khẩu thành một chuỗi
  • Cuối cùng, hiển thị kết quả của mật khẩu bằng cách sử dụng f-strings


Kết quả cuối cùng của mã:


 # main.py import random letters = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] print("Welcome to the PyPassword Generator!") nr_letters = int(input("How many letters would you like in your password?\n")) nr_symbols = int(input(f"How many symbols would you like?\n")) nr_numbers = int(input(f"How many numbers would you like?\n")) password_list = [] for char in range(1, nr_letters + 1): password_list.append(random.choice(letters)) for char in range(1, nr_symbols + 1): password_list.append(random.choice(numbers)) for char in range(1, nr_numbers + 1): password_list.append(random.choice(symbols)) random.shuffle(password_list) password = "" for char in password_list: password += char print("char", char) # convert list to string pwd = ''.join(password_list) print(f"Your random password to use is: {pwd}")


Sự kết luận

Trong bài viết này, bạn đã phát triển một ứng dụng tạo mật khẩu ngẫu nhiên không giống nhau trong mỗi lần thử, làm cho nó trở thành trường hợp động để tạo nhiều mật khẩu nhất có thể.


Mặc dù đây có thể không phải là cách tốt nhất để tạo mật khẩu ngẫu nhiên, nhưng bản chất của bài viết là cho thấy khả năng sử dụng chương trình Python để tạo mật khẩu. Tuy nhiên, kết quả đầu ra là bất ngờ và khác biệt với mọi đầu vào mới, bất kể độ dài của mật khẩu.




Tìm hiểu thêm