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, , để viết các tập lệnh cho ứng dụng. main.py # 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. : biểu thị rằng giá trị đầu vào sẽ chuyển đến dòng sau \n 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 có sẵn mà mô-đun được sử dụng để tạo số ngẫu nhiên random 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 cho mỗi biến được khai báo của ký tự random.choice() Trộn 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 password_list .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 vòng lặp char Sử dụng phương thức để thay đổi danh sách lặp từ danh sách mật khẩu thành một chuỗi .join() 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 Tạo số giả ngẫu nhiên Nối: thêm các mục vào danh sách