Hướng dẫn how do you encrypt password in python? - làm thế nào để bạn mã hóa mật khẩu trong python?

Mật khẩu mã hóa mật khẩu của người dùng để chúng trở nên khó đoán hoặc giải mã. Đây là một bước thiết yếu trong việc phát triển phần mềm cơ sở người dùng an toàn. Cho dù bạn đang xây dựng một cái với bình hay khung Python nhẹ khác, bạn không thể bỏ qua bước đó. Đó là nơi bcrypt đến.

Chúng tôi sẽ chỉ cho bạn cách sử dụng bcrypt để băm mật khẩu của bạn bằng python.

Cách bcrypt hoạt động

BCRYPT là một thư viện băm không liên tục ngôn ngữ cung cấp mã hóa mật khẩu duy nhất. Trong khi mã hóa chuỗi của bạn, nó tạo thêm các ký tự ngẫu nhiên (muối) theo mặc định để tăng cường bảo mật mật khẩu của bạn.

Tùy chọn, bạn cũng có thể chỉ định số lượng ký tự thêm bạn muốn thêm vào chuỗi đến.

Thư viện thebcrypt không chỉ đọc các chuỗi thô Byte mã. Vì vậy, để bắt đầu, trước tiên bạn sẽ mã hóa một chuỗi mật khẩu đến trước khi chuyển nó cho bcrypt để mã hóa.bcrypt library doesn't read raw strings—byte code only. So to start, you'll first encode an incoming password string before passing it to bcrypt for encrypting.

Mã hóa không giống như mã hóa. Nó chỉ đảm bảo rằng một chuỗi có thể đọc được trước khi thuật toán mã hóa có thể che giấu nó.

Mã hóa mật khẩu trong Python với BCRYPT

Mã hóa mật khẩu BCRYPT rất dễ dàng với Python. Chúng tôi sẽ tập trung vào cách làm điều này mà không cần sử dụng khung. Nhưng không phải lo lắng, nó tuân theo quy trình tương tự trong các khung một khi bạn biết cách lưu trữ đầu vào của người dùng và đọc chúng từ cơ sở dữ liệu.

Cài đặt và thiết lập bcrypt

Nếu bạn chưa làm như vậy, hãy kích hoạt môi trường ảo Python trong root dự án của bạn. Sau đó cài đặt BCRYPT bằng PIP:pip:

pip install bcrypt

Bắt đầu mã hóa mật khẩu

Sau khi được cài đặt, hãy xem cách mã hóa một chuỗi bằng BCRYPT:

import bcrypt  
password = "mypasswordstring"

# Encode password into a readable utf-8 byte code:
password = password.encode('utf-8')

# Hash the ecoded password and generate a salt:
hashedPassword = bcrypt.hashpw(password, bcrypt.gensalt())
print(hashedPassword)

Khi bạn chạy mã Python ở trên, nó sẽ in một chuỗi byte được mã hóa. Tuy nhiên, đầu ra thay đổi mỗi khi bạn thực thi tập lệnh. Đây là cách BCRYPT đảm bảo mỗi người dùng có mật khẩu được mã hóa duy nhất.

Nhân tiện, đó là để mã hóa mật khẩu.

Cách so sánh và xác nhận mật khẩu với bcrypt

Điều gì sẽ xảy ra nếu bạn muốn lưu trữ mật khẩu băm và xác nhận sau đó rằng nó phù hợp với mật khẩu được cung cấp của người dùng trong quá trình xác thực?

Thật dễ dàng. Bạn chỉ cần so sánh mật khẩu xác thực với mật khẩu được lưu trong cơ sở dữ liệu (hoặc trong bộ nhớ trong trường hợp này).

Và vì BCrypt chỉ đọc chuỗi byte, bạn cũng sẽ cần mã hóa mật khẩu xác thực trước khi so sánh nó với mã trong cơ sở dữ liệu. Về bản chất, bạn sẽ kiểm tra chéo một đầu vào xác thực được mã hóa với mật khẩu băm được mã hóa đã được lưu trữ trong cơ sở dữ liệu của bạn.

Sử dụng các đầu vào Python giả, hãy xem cách thức hoạt động trong thực tế:

import bcrypt

# store your password:
password = str(input("input password: "))

# Encode the stored password:
password = password.encode('utf-8')

# Encrypt the stored pasword:
hashed = bcrypt.hashpw(password, bcrypt.gensalt(10))

# Create an authenticating password input field to check if a user enters the correct password
check = str(input("check password: "))

# Encode the authenticating password as well
check = check.encode('utf-8')

# Use conditions to compare the authenticating password with the stored one:
if bcrypt.checkpw(check, hashed):
print("login success")
else:
print("incorrect password")

Mã trên yêu cầu bạn nhập mật khẩu mới khi bạn thực thi nó. Python lưu trữ điều này trong bộ nhớ. Sau đó, bạn sẽ cung cấp cùng một mật khẩu (chỉ được biết đến với bạn) trong trường xác thực.

Python in một thông báo thành công nếu mật khẩu được so sánh khớp với thông báo được mã hóa trước đó. Mặt khác, nó xuất ra thông báo không thành công trong câu lệnh khác:else statement:

bcrypt password check CLI output

Toàn bộ khái niệm giống như lưu trữ mật khẩu trong cơ sở dữ liệu trong quá trình đăng ký và cung cấp nó sau trong quá trình xác thực.

Quy mô mã hóa với bcrypt

Mặc dù chúng tôi chỉ chứng minh cách BCRYPT hoạt động bằng cách lưu trữ mật khẩu được mã hóa vào bộ nhớ ngắn Python đơn giản, việc sử dụng cuối cùng của nó nằm trong các ứng dụng cơ sở người dùng thực tế.

Tuy nhiên, hướng dẫn này cho thấy các cách cơ bản để cấu trúc mã của bạn để đạt được điều này, ngay cả trong các kịch bản thực tế. Chẳng hạn, nếu bạn đang sử dụng bình, bạn có thể thay thế các đầu vào bằng các biểu mẫu web riêng biệt để phục vụ các trường đăng ký và xác thực. Và tất nhiên, bạn sẽ lưu trữ mật khẩu được mã hóa trong cơ sở dữ liệu thực tế và đọc từ nó khi so sánh mật khẩu.

Làm thế nào để bạn mã hóa một mật khẩu?

Mã hóa cơ sở dữ liệu bằng cách sử dụng mật khẩu..
Mở cơ sở dữ liệu ở chế độ độc quyền.Làm cách nào để mở cơ sở dữ liệu ở chế độ độc quyền?....
Trên tab Tệp, nhấp vào thông tin, sau đó nhấp vào mã hóa bằng mật khẩu.....
Nhập mật khẩu của bạn vào hộp mật khẩu, nhập lại vào hộp xác minh, sau đó bấm OK ..

Làm cách nào để mã hóa một tệp văn bản bằng mật khẩu trong Python?

Mã hóa tệp bằng cách sử dụng khóa được tạo..
Mở tệp chứa khóa ..
Khởi tạo đối tượng Fernet và lưu trữ nó trong biến Fernet ..
Đọc tệp gốc ..
Mã hóa tệp và lưu trữ nó vào một đối tượng ..
Sau đó viết dữ liệu được mã hóa vào cùng một tệp NBA.CSV ..

Làm thế nào để bạn đặt một mật khẩu trên một tệp trong Python?

Bảo vệ một tài liệu Word bằng mật khẩu trong Python..
Đầu tiên, tải tài liệu từ bằng lớp tài liệu ..
Tạo một đối tượng của lớp OoxMLSaveOptions (để lưu ở định dạng DOC, sử dụng lớp docsaveoptions thay thế) ..
Đặt mật khẩu bằng OoxMLSaveOptions.Tài sản mật khẩu ..
Cuối cùng, lưu tài liệu từ được bảo vệ bằng tài liệu ..