Hướng dẫn python username and password program for loop - chương trình tên người dùng và mật khẩu python cho vòng lặp

Ý tôi là ý tưởng đằng sau điều này:

password=Hytu76E
username=bank_admin
while password!='Hytu76E' and username!='bank_admin' and count<4:

Có vẻ như bạn đi vào vòng lặp. Nhưng tại sao rất phức tạp? Bạn cũng có thể bắt đầu một vòng lặp chạy 3 lần:

for i in range(3):
    [do something]

Và về những gì [làm một cái gì đó] có thể. Trước hết bạn cần kiểm tra đầu vào của người dùng:

username=input('Enter username: ') and password=input('Enter password: ')

Vì vậy, ý tưởng là tốt nhưng những gì bạn làm là bạn yêu cầu 2 đầu vào trong cùng một câu lệnh và sau đó so sánh chúng với một câu lệnh và. Vì vậy, không có gì ngạc nhiên khi thông dịch viên bị nhầm lẫn ở đây. Thay vào đó, những gì bạn có thể muốn làm chỉ là viết chúng trên hai dòng riêng biệt:

username=input('Enter username: ')
password=input('Enter password: ')

Nếu bạn thực sự muốn/cần phải làm điều đó trên một dòng bạn có thể sử dụng:

username, password = input(), input()

Sau đó, bạn cần phải chèn "[tên của bạn] [enter]" " .

Tiếp theo, bạn cần tình trạng của mình vì nó không còn là một phần của vòng lặp:

if username == [username] and password == [password]:
    print('Access granted')
    break
else:
    print('Access denied. Try again.')

Ở đây phá vỡ bỏ qua phần còn lại của vòng lặp sau khi điều kiện được đáp ứng. Nếu bạn muốn được ưa thích, bạn cũng có thể thêm một điều kiện để kiểm tra xem đó có phải là lần thử cuối cùng không:

else:
    if i < 2:
        print('Access denied. Try again.')
    else:
        print('Access denied. IP was added to the log')

Bình luận

Mã của bạn khó đọc qua, vì sử dụng quá nhiều các bình luận. Nhận xét nên thêm một cái gì đó vào mã, không lặp lại mã hoặc nói với người đọc những gì mã đã ngụ ý mạnh mẽ.

Sử dụng băm

Chỉ băm là rất yếu, nhưng điều này khá dễ thực hiện. Cũng lưu ý rằng MD5 dễ bị các cuộc tấn công va chạm băm và không nên được sử dụng nữa. Nếu nền tảng của bạn hỗ trợ nó, hãy sử dụng SHA (3) -256.

Vấn đề với ứng dụng này là nếu có ai truy cập mã, họ có thể đọc tên người dùng và mật khẩu trong bản rõ. Bạn sẽ tốt hơn trước khi băm mật khẩu, sau đó sử dụng

for i in range(3):
    [do something]
1 để kiểm tra xem đầu vào có khớp không. Tôi đã viết một phiên bản cải tiến của mã của bạn bên dưới, để hiển thị ý nghĩa của tôi:

from hashlib import md5
from getpass import getpass
import sys

print("Hello! Welcome to FaceSnap!") 

attempts = 0
check_username = "5945261a168e06a5b763cc5f4908b6b2"
check_password = "48d6215903dff56238e52e8891380c8f"
# These hashes have been generated earlier on.
# This is not how you would go about storing usernames and passwords,
# but for the sake of simplicity, we'll do it like this.

while True: 
    username = input("Username: ")
    password = getpass("Password: ")
    # Getpass will not echo input to the screen, so your password remains 
    # invisible
    print()

    if attempts == 3:
        sys.exit("Too many failed attempts.")

    if md5(username.encode().hexdigest() == check_username:
        if md5(password.encode().hexdigest() == check_password:
            print("Username and password entered correctly.")
            # Username and password match - do something here
        else:
            print("Password entered incorrectly.")
            attempts += 1
    else:
        print("Username entered incorrectly.")
        attempts += 1

Sử dụng Scrypt

Trong thực tế, bạn sẽ không băm mật khẩu để lưu trữ chúng trong cơ sở dữ liệu, nhưng sử dụng chức năng dẫn xuất khóa chuyên dụng, chẳng hạn như Scrypt. Thư viện mật mã đầu tiên cho Python xuất hiện trong tâm trí là Pycrypto, nhưng

for i in range(3):
    [do something]
2 làm cho việc tự bắn vào chân mình khó khăn hơn đáng kể.

Câu trả lời được đề xuất

# program that checks that the username and password are correct # 

username = input("Please enter your username : ")
password = input("Please enter your password : ")
print ("Greetings," , username, "you are now logged in now with a password")

command = input("Please type a command …

Nhảy để đăng

Không, tên người dùng và mật khẩu được đưa ra trong các dòng đầu tiên không bao giờ được xác thực. Dòng 13 cho đến khi kết thúc mà không có dòng bắt đầu đóng vai trò là khởi đầu tốt để chuẩn bị chương trình.

Nhảy để đăng

Không, tên người dùng và mật khẩu được đưa ra trong các dòng đầu tiên không bao giờ được xác thực. Dòng 13 cho đến khi kết thúc mà không có dòng bắt đầu đóng vai trò là khởi đầu tốt để chuẩn bị chương trình.

Nhảy để đăng

Không, tên người dùng và mật khẩu được đưa ra trong các dòng đầu tiên không bao giờ được xác thực. Dòng 13 cho đến khi kết thúc mà không có dòng bắt đầu đóng vai trò là khởi đầu tốt để chuẩn bị chương trình.

Thông thường, bạn sẽ tạo một từ điển trong đó tên người dùng là khóa và mật khẩu là giá trị (hy vọng, được mã hóa). 888 pyMod Team Colleague Featured Poster

Tất cả 9 câu trả lời

# program that checks that the username and password are correct # 

username = input("Please enter your username : ")
password = input("Please enter your password : ")
print ("Greetings," , username, "you are now logged in now with a password")

command = input("Please type a command :")
if command == "log off":
    print ("You have now been logged off again",username)
    username == ""
    password == ""

username = input("Please enter your username : ")
password = input("Please enter your password : ")

while (username != "username" and password != "password")

    print (" Sorry username and password incorrect please re-enter for validation ")
    username = input("Please enter your username : ")
    password = input("Please enter your password : ")

else:
    print ("Greetings," , username, "you are now logged in now with your password")

Trustytony888 poster đồng nghiệp của nhóm Pymod

10 năm trước

Thông thường, bạn sẽ tạo một từ điển trong đó tên người dùng là khóa và mật khẩu là giá trị (hy vọng, được mã hóa). 888 pyMod Team Colleague Featured Poster

Tất cả 9 câu trả lời

Không, tên người dùng và mật khẩu được đưa ra trong các dòng đầu tiên không bao giờ được xác thực. Dòng 13 cho đến khi kết thúc mà không có dòng bắt đầu đóng vai trò là khởi đầu tốt để chuẩn bị chương trình.

10 năm trước

Hướng dẫn python username and password program for loop - chương trình tên người dùng và mật khẩu python cho vòng lặp

Không có thẻ mã không ai có thể đọc chương trình của bạn. 814 Nearly a Posting Maven

Tất cả 9 câu trả lời

Trustytony888 poster đồng nghiệp của nhóm Pymod

Hướng dẫn python username and password program for loop - chương trình tên người dùng và mật khẩu python cho vòng lặp

Tất cả 9 câu trả lời

Trustytony888 poster đồng nghiệp của nhóm Pymod

for i in range(3):
    [do something]
0

Hướng dẫn python username and password program for loop - chương trình tên người dùng và mật khẩu python cho vòng lặp

10 năm trước

Không có thẻ mã không ai có thể đọc chương trình của bạn.

Hướng dẫn python username and password program for loop - chương trình tên người dùng và mật khẩu python cho vòng lặp

10 năm trước

Không có thẻ mã không ai có thể đọc chương trình của bạn.

Hướng dẫn python username and password program for loop - chương trình tên người dùng và mật khẩu python cho vòng lặp

Được chỉnh sửa 10 năm trước bởi Trustytony vì: N/A

woooee814 gần một maven đăng

Hướng dẫn python username and password program for loop - chương trình tên người dùng và mật khẩu python cho vòng lặp

Bạn nên đặt điều này vào một chức năng mà bạn có thể gọi nhiều lần thay vì sao chép mã.

Tôi đồng ý với các bài viết ở trên. Spin của tôi trên mã sẽ là:

5 năm trước 4,142 Hi, I'm Jim, one of DaniWeb's moderators. Moderator Featured Poster

Bạn nên đặt điều này vào một chức năng mà bạn có thể gọi nhiều lần thay vì sao chép mã.

Không, tên người dùng và mật khẩu được đưa ra trong các dòng đầu tiên không bao giờ được xác thực. Dòng 13 cho đến khi kết thúc mà không có dòng bắt đầu đóng vai trò là khởi đầu tốt để chuẩn bị chương trình.

Thông thường, bạn sẽ tạo một từ điển trong đó tên người dùng là khóa và mật khẩu là giá trị (hy vọng, được mã hóa).

Tất cả 9 câu trả lời

Trustytony888 poster đồng nghiệp của nhóm Pymod

Làm thế nào để bạn tạo một chương trình tên người dùng và mật khẩu đơn giản trong Python?

Nhận tên người dùng và mật khẩu trong thời gian chạy bằng Python..
Pip Cài đặt GetPass. Python. Sao chép ..
Tên người dùng = getPass. GetUser () Python. Sao chép ..
username = input ('nhập tên người dùng:') python. Sao chép ..
Mật khẩu = GetPass. GetPass () Python. Sao chép ..

Làm cách nào để hỏi tên người dùng và mật khẩu trong Python?

Sử dụng hàm getPass () để nhắc mật khẩu người dùng Hàm getPass () được sử dụng để nhắc cho người dùng sử dụng dấu nhắc chuỗi và đọc đầu vào từ người dùng làm mật khẩu.Đầu vào đọc mặc định cho mật khẩu của người dùng: Được trả lại cho người gọi dưới dạng chuỗi. The getpass() function is used to prompt to users using the string prompt and reads the input from the user as Password. The input read defaults to “Password: ” is returned to the caller as a string.

Làm thế nào để Python xác nhận tên người dùng và mật khẩu?

Làm thế nào để Python xác nhận tên người dùng và mật khẩu ?..
Nhập mô -đun RE Python ..
Chạy một vòng vô hạn ..
Yêu cầu người dùng nhập một mật khẩu ..
Kiểm tra xem độ dài của mật khẩu có từ 6 đến 12 hay không ..
Kiểm tra xem mật khẩu có chứa bất kỳ ký tự chữ hoa nào hay không, nếu không in một tin nhắn và tiếp tục bắt đầu vòng lặp ..

Làm cách nào để khớp với mật khẩu và xác nhận mật khẩu bằng python?

Điều kiện chính để xác thực mật khẩu:..
Tối thiểu 8 ký tự ..
Bảng chữ cái phải nằm giữa [A-Z].
Ít nhất một bảng chữ cái nên có trường hợp trên [A-Z].
Ít nhất 1 số hoặc chữ số giữa [0-9] ..
Ít nhất 1 ký tự từ [_ hoặc @ hoặc $] ..