Hướng dẫn how do you make a login system in python? - làm thế nào để bạn tạo một hệ thống đăng nhập trong python?

Ả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 thế nào để bạn tạo một hệ thống đăng nhập trong Python?

Tìm hiểu từng bước..
Tạo cửa sổ Menu chính ..
Tạo cửa sổ đăng ký ..
Đăng ký thông tin của người dùng trong tệp văn bản bằng Python ..
Kiểm tra xem thông tin của người dùng có tồn tại hay không ..
Tạo cửa sổ đăng nhập và xác minh người dùng ..

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

Để làm điều đó chỉ cần sao chép mã bên dưới và dán nó vào bên trong trình chỉnh sửa văn bản nhàn rỗi ...
root = tk ().
nguồn gốc.Tiêu đề ("Python: Hệ thống kiểm kê đơn giản").
chiều rộng = 640 ..
Chiều cao = 480 ..
màn hình_width = root.Winfo_ScreenWidth ().
Screen_Height = root.Winfo_Screenheight ().
x = (screen_width/2) - (chiều rộng/2).
y = (screen_height/2) - (chiều cao/2).

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 ..