Lưu trữ mật khẩu python

Mật mã hóa mật khẩu của người dùng để họ 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

Nội dung chính Hiển thị

  • Cách hoạt động của bcrypt
  • Mã hóa mật khẩu trong Python với BCRYPT
  • Cài đặt và thiết lập bcrypt
  • Bắt đầu mã hóa mật khẩu
  • Cách so sánh và xác nhận mật khẩu với bcrypt
  • Quy mô hóa hóa với bcrypt
  • Làm cách nào để làm phiền mật khẩu trong Python?
  • Làm cách nào để giải mã tệp python đã được mã hóa?
  • Làm cách nào để băm mật khẩu bằng cách sử dụng bcrypt trong python?
  • Tôi có nên mã hóa mật khẩu trước khi gửi đến API không?

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 hoạt động của bcrypt

BCRYPT là 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 hóa của bạn, nó tạo thêm các ký tự ngẫu nhiên ngẫu nhiên (muối) theo mặc định để tăng cường bảo vệ 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ự bổ sung mà bạn muốn thêm vào chuỗi đến

Thư viện thebcrypt không chỉ đọc chuỗi byte thô. Vì vậy, để bắt đầu, trước tiên bạn sẽ mã hóa một chuỗi mật khẩu trước khi chuyển nó cho bcrypt để mã hóa. thư viện bcrypt không đọc chuỗi thô—chỉ mã byte. Vì vậy, để bắt đầu, trước tiên bạn sẽ mã hóa chuỗi mật khẩu đến trước khi chuyển chuỗi đó tới bcrypt để mã hóa

Mã hóa không giống như mã hóa. Nó chỉ chắc chắn 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 cực dễ dàng với Python. Chúng tôi sẽ tập trung vào cách thực hiện điều này mà không cần sử dụng khung. Nhưng không cần phải lắng nghe, nó tuân theo các quy trình tương tự trong các khung 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 dự án gốc của bạn. Sau đó cài đặt BCRYPT bằng PIP. píp

pip install bcrypt

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

Sau khi cài đặt xong, 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ẽ được mã hóa trong một chuỗi byte. Tuy nhiên, hãy bắt đầu thay đổi mỗi khi bạn thực hiện lệnh thi. Đâ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 ích, đó 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 bởi người dùng trong quá trình xác thực?

Easy easy. 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 để 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, hãy xem cách thức hoạt động giả 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 hiện nó. Python lưu điều này trong bộ nhớ. Sau đó, bạn sẽ cung cấp cùng một mật khẩu (chỉ bạn biết) trong trường xác thực

Python trong 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. tuyên bố khác

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 cho nó sau trong quá trình xác thực

Quy mô hóa 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ấu trúc 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 thường, 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 cách nào để làm phiền mật khẩu trong Python?

Trong Python với sự trợ giúp của mô-đun MaskPass() và mô-đun base64(), chúng ta có thể ẩn mật khẩu của người dùng bằng dấu hoa thị (*) trong thời gian đầu vào và sau đó . với sự trợ giúp của mô-đun maskpass() và mô-đun base64(), chúng tôi có thể ẩn mật khẩu của người dùng bằng dấu hoa thị (*) trong thời gian nhập và sau đó với sự trợ giúp của mô-đun base64(), có thể . .

Làm cách nào để giải mã tệp python đã được mã hóa?

Giải mã tệp đã được mã hóa. .

Khởi tạo đối tượng Fernet và lưu trữ nó trong biến Fernet

Read file has beenized

Giải mã tệp và lưu trữ nó vào một đối tượng

Sau đó, dữ liệu ghi được giải mã vào cùng một tệp NBA. CSV

Làm cách nào để băm mật khẩu bằng cách sử dụng bcrypt trong python?

Băm một mật khẩu trong Python bằng bcrypt. .

bcrypt. GENSALT () - Nó được sử dụng để tạo ra ánh sáng. Muối là một chuỗi giả và được thêm vào mật khẩu

bcrypt. HashPW () - Nó được sử dụng để tạo ra những chiếc mũ cuối cùng được lưu trữ trong cơ sở dữ liệu. Argument - chúng ta có thể truyền tải và mật khẩu dưới dạng mã byte

Tôi có nên mã hóa mật khẩu trước khi gửi đến API không?

Nó thực sự sẽ mất an toàn hơn khi trùm mật khẩu và gửi nó qua một kênh không được mã hóa. Bạn sẽ hiển thị thuật toán băm của bạn trên máy khách. Tin tặc chỉ có thể đánh hơi ám của mật khẩu và sau đó sử dụng nó để hack sau