Hướng dẫn make a login system python - tạo python hệ thống đăng nhập

Ảnh của Chris Ried trên unplash

Bài viết này sẽ hướng dẫn bạn cách xây dựng một hệ thống đăng nhập CLI rất cơ bản với Python.

Ý tưởng

Chương trình sẽ chấp nhận email và mật khẩu của người dùng, băm mật khẩu, lưu trữ vào tệp văn bản với email và hoàn thành quy trình đăng ký.

Trong quy trình đăng nhập, chương trình lại sẽ chấp nhận email và mật khẩu của người dùng, băm mật khẩu, xác minh nó bằng email và mật khẩu băm được lưu trong tệp văn bản trước đó, in tin nhắn thành công xác nhận email và mật khẩu được nhập là chính xác hoặc In một tin nhắn thất bại nếu email và mật khẩu không chính xác.

Điều kiện tiên quyết

Bạn nên cài đặt Python phiên bản 3.0 trở lên để sử dụng Hashlib gói tích hợp.

Hướng dẫn

Đầu tiên, chúng tôi sẽ nhập gói Hashlib tích hợp cần thiết cho hệ thống đăng nhập của chúng tôi.

import hashlib

Sau đó, chúng tôi sẽ xác định đăng ký chức năng (), sẽ chấp nhận email và mật khẩu của người dùng và yêu cầu lại mật khẩu để xác nhận nó.

Nếu mật khẩu và mật khẩu xác nhận tương ứng, thì hàm sẽ băm mật khẩu xác nhận và lưu trữ trong tệp văn bản với email và nếu nó không có, nó sẽ in một thông báo lỗi.

Chúng tôi sẽ mã hóa mật khẩu xác nhận với hàm mã hóa () để chuyển đổi từ chuỗi thành định dạng byte chấp nhận được cho băm.

Sau đó, chúng tôi sẽ tạo ra một hàm băm MD5 được mã hóa bằng hàm hexDigest ().

def signup():
email = input(“Enter email address: “)
pwd = input(“Enter password: “)
conf_pwd = input(“Confirm password: “)
if conf_pwd == pwd:
enc = conf_pwd.encode()
hash2 = hashlib.md5(enc).hexdigest()
with open(“credentials.txt”, “w”) as f:
f.write(email + “\n”)
f.write(hash2)
f.close()
print(“You have registered successfully!”)
else:
print(“Password is not same as above! \n”)

Bây giờ chúng tôi sẽ xác định chức năng thứ hai của chúng tôi (), sẽ chấp nhận email và mật khẩu của người dùng, băm mật khẩu đã nhập và xác minh nó bằng mật khẩu băm được lưu trong tệp văn bản cùng với email.

Nếu email và mật khẩu đã nhập tương ứng với tệp trong tệp văn bản, thì hàm sẽ in một tin nhắn thành công và nếu nó không, nó sẽ in một thông báo lỗi.

def login():
email = input(“Enter email: “)
pwd = input(“Enter password: “)
auth = pwd.encode()
auth_hash = hashlib.md5(auth).hexdigest()
with open(“credentials.txt”, “r”) as f:
stored_email, stored_pwd = f.read().split(“\n”)
f.close()
if email == stored_email and auth_hash == stored_pwd:
print(“Logged in Successfully!”)
else:
print(“Login failed! \n”)

Bây giờ chúng tôi sẽ kết hợp hai chức năng và tạo một chương trình điều khiển menu với vô hạn trong khi vòng lặp cho phép người dùng chọn đăng ký, đăng nhập và thoát.

Khi thoát, vòng lặp sẽ bị hỏng và sẽ chấm dứt chương trình.

import hashlib
def signup():
email = input(“Enter email address: “)
pwd = input(“Enter password: “)
conf_pwd = input(“Confirm password: “)
if conf_pwd == pwd:
enc = conf_pwd.encode()
hash2 = hashlib.md5(enc).hexdigest()
with open(“credentials.txt”, “w”) as f:
f.write(email + “\n”)
f.write(hash2)
f.close()
print(“You have registered successfully!”)
else:
print(“Password is not same as above! \n”)
def login():
email = input(“Enter email: “)
pwd = input(“Enter password: “)
auth = pwd.encode()
auth_hash = hashlib.md5(auth).hexdigest()
with open(“credentials.txt”, “r”) as f:
stored_email, stored_pwd = f.read().split(“\n”)
f.close()
if email == stored_email and auth_hash == stored_pwd:
print(“Logged in Successfully!”)
else:
print(“Login failed! \n”)
while 1:
print("********** Login System **********")
print("1.Signup")
print("2.Login")
print("3.Exit")
ch = int(input("Enter your choice: "))
if ch == 1:
signup()
elif ch == 2:
login()
elif ch == 3:
break
else:
print("Wrong Choice!")

Nếu bạn thích bài viết này, hãy để lại một cái vỗ tay!

Hãy để chúng tôi đi từng bước:

Đầu tiên, kiểm tra xem người dùng có tồn tại sẽ luôn cho bạn biết không, bởi vì bạn đang thêm người dùng, sau đó kiểm tra xem nó có tồn tại không. Vì vậy, câu lệnh IF bạn đã viết là OK, nhưng đặt nó trước store_user.append:then checking if it exists. So the if statement you wrote is OK, but put it before the store_user.append:

if user in store_user:
    print "That user already exsist"
else:
    store_user.append(user)
    store_pass.append(password)

Thứ hai, điều kiện bạn đã viết cho while 1 == 1: là vô ích (nhưng vẫn đúng), bạn có thể làm while 1 (vì 1 đánh giá là đúng) hoặc thậm chí tốt hơn

def signup():
email = input(“Enter email address: “)
pwd = input(“Enter password: “)
conf_pwd = input(“Confirm password: “)
if conf_pwd == pwd:
enc = conf_pwd.encode()
hash2 = hashlib.md5(enc).hexdigest()
with open(“credentials.txt”, “w”) as f:
f.write(email + “\n”)
f.write(hash2)
f.close()
print(“You have registered successfully!”)
else:
print(“Password is not same as above! \n”)
0 đơn giản.

Thứ ba, kiểm tra tên người dùng/mật khẩu chỉ kiểm tra người dùng và mật khẩu cuối cùng. Nếu bạn đã sử dụng

def signup():
email = input(“Enter email address: “)
pwd = input(“Enter password: “)
conf_pwd = input(“Confirm password: “)
if conf_pwd == pwd:
enc = conf_pwd.encode()
hash2 = hashlib.md5(enc).hexdigest()
with open(“credentials.txt”, “w”) as f:
f.write(email + “\n”)
f.write(hash2)
f.close()
print(“You have registered successfully!”)
else:
print(“Password is not same as above! \n”)
1 và tương tự cho mật khẩu, bạn sẽ không nhận được kết quả dự kiến. Vì vậy, bạn cần sử dụng từ điển thay vì danh sách. Với những điều này, bạn có thể gán một khóa cho một giá trị. Trong trường hợp của bạn, người dùng với mật khẩu, vì vậy bạn sẽ có:key to a value. In your case a user to a password, so you will have:

store = dict()
# the code to get the user/password
store[user] = password # you "save" the value password for the key user

# then to check:
while not (userguess in store and store[userguess] == passwordguess):
   # try again

Đọc thêm về từ điển.

Sau đó, bạn có thể lưu trữ từng quy trình "logic" trong một hàm để làm cho mã của bạn dễ đọc hơn và có thể sử dụng lại. Ví dụ:

def add_user(store):
    user = raw_input('Create Username: ')
    password = raw_input('Create Password: ')
    if user in store:
        print "That user already exsist"
        return False
    else:
        store[user] = password
        return True

# and call this 10 times for example...
global_store = dict()
for i in range(10):
    add_user(global_store)

.

Tôi hy vọng tôi đã rõ ràng, và tôi đã giúp đỡ :)

Làm cách nào để tạo biểu mẫu đăng nhập trong Python?

Ví dụ 1: Biểu mẫu đăng nhập bằng người dùng Python Tkinter có thể nhập chi tiết cho tên người dùng, mật khẩu;và nhấp vào nút Đăng nhập.Khi nút được nhấp, một hàm được gọi để xác thực thông tin đăng nhập.Ở đây, trong chức năng này, bạn phải viết logic kinh doanh của mình để xác thực tên người dùng và mật khẩu.User can enter the details for username, password; and click on Login button. Once the button is clicked, a function is called to validate the credentials. Here, in this function, you have to write your business logic to validate the username and password.

Làm cách nào để tự động đăng nhập vào một trang web bằng Python?

Chúng tôi sẽ sử dụng Selenium (Thư viện Python) để tạo bot tự động login ...
Trước hết, nhập các webDrivers từ thư viện selen ..
Tìm URL của trang đăng nhập mà bạn muốn đăng nhập ..
Cung cấp trình điều khiển Chrome thực thi vị trí cho Selenium WebDriver để truy cập trình duyệt Chrome ..

Làm thế nào để bạn mã hóa tên người dùng và mật khẩu 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 ..