Cách lưu trữ mật khẩu an toàn trong python

Bí mật được gọi là bí mật vì một lý do. Chúng tôi không muốn người khác biết về chúng, dù là ngoài đời thực hay trong Python

Chúng ta sẽ thảo luận về 3 cách khác nhau để lưu trữ thông tin đăng nhập và đọc chúng bằng Python

  • Lưu trữ chúng dưới dạng biến hệ thống
  • Lưu trữ chúng dưới dạng các biến trong môi trường ảo của bạn
  • Lưu trữ chúng trong một. tập tin env
  • Cách thuận tiện nhất

Lưu trữ chúng dưới dạng Biến môi trường toàn cầu

Nếu thông tin đăng nhập được lưu trữ dưới dạng Biến môi trường toàn cầu, chúng có thể được truy cập bởi bất kỳ tập lệnh nào đang chạy trong bất kỳ môi trường nào trên PC của bạn

Để tạo Biến môi trường toàn cầu, hãy chạy biến này trong thiết bị đầu cuối của bạn

export varName=varValue

Đảm bảo không có khoảng cách giữa dấu '='. Nếu bạn gặp lỗi “zsh. Bài tập không hợp lệ”, có thể là do khoảng cách giữa dấu ‘=’

Hãy tạo một vài biến môi trường toàn cầu

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk

Trong Windows, bạn có thể phải sử dụng “set” thay vì “export”

Đoạn script trên cần được chạy trong terminal. Bây giờ, chúng ta hãy thử truy cập các biến mà chúng ta đã tạo trước đó

import os
print(os.environ) 
# This will print a dictionary with 
# all the global environment variables

Chúng ta có thể sử dụng các phương pháp truy cập từ điển để đọc các biến môi trường, tôi. e đang dùng. lấy() hoặc [ ]

print(os.environ.get('globalSecretUser'))
print(os.environ.get('globalSecretKey'))

'''
global_rahul1999
global_xy76hUihk
'''

Để cập nhật các biến môi trường, chỉ cần chạy lại câu lệnh xuất

export globalSecretUser=Updated_rahul1999

Hãy thử truy cập lại biến trong Python

import os 

print(os.environ.get('globalSecretUser'))

'''
Updated_rahul1999
'''

Để xóa một biến môi trường, chúng ta sử dụng từ khóa unset

unset globalSecretUser

Nếu bạn cố gắng truy cập biến trong Python, bạn sẽ nhận được KeyError hoặc Không tùy thuộc vào phương pháp bạn sử dụng để truy cập các giá trị trong từ điển

Lưu trữ chúng dưới dạng các biến trong môi trường ảo của bạn

Các biến môi trường này sẽ chỉ có thể truy cập được đối với các tập lệnh chạy trong môi trường ảo nơi các biến được tạo. Chúng ta có thể coi chúng là các biến môi trường “cục bộ”

Đầu tiên, chúng ta sẽ phải tạo một môi trường ảo

Trên máy Mac

python3 -m venv venv

Trên Windows

________số 8_______

Điều này sẽ tạo ra một môi trường ảo trong thư mục hiện tại của bạn. Cần có một tệp có tên là kích hoạt bên trong thư mục bin. nếu bạn đang dùng Windows, nó sẽ nằm trong thư mục Scripts. Tập lệnh này chạy mỗi khi chúng tôi kích hoạt môi trường ảo của mình

Chúng tôi sẽ thêm các biến của mình vào tập lệnh này. Do đó, mỗi khi chúng tôi kích hoạt môi trường ảo của mình, các biến môi trường sẽ được tạo. Mở tập tin

Trước khi tạo các biến, chúng ta sẽ cần thêm một số mã để đảm bảo các biến không tồn tại khi môi trường ảo đã bị hủy kích hoạt

Chúng ta sẽ sử dụng từ khóa unset, vào hàm deactivate() bên trong activate script và bỏ set các biến ở đầu hàm

deactivate () {
    unset localSecretUser
    unset localSecretKey
    # Some Code
}

Bây giờ, chúng ta sẽ sử dụng từ khóa export để định nghĩa các biến. Mã này sẽ nằm ngoài chức năng hủy kích hoạt ở cuối tập lệnh kích hoạt

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
0

Trong Windows, bạn có thể phải sử dụng “set” thay vì “export”

Bây giờ chúng ta sẽ cần kích hoạt môi trường ảo của mình. Nếu bạn đã kích hoạt môi trường ảo của mình, bạn có thể sử dụng từ khóa hủy kích hoạt để hủy kích hoạt môi trường ảo của mình

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
1

Nhập ở trên trong thiết bị đầu cuối

Bây giờ hãy kích hoạt môi trường ảo của chúng ta. Trên máy Mac

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
2

Trên Windows

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
3

Bạn có thể liệt kê các biến của môi trường hiện tại bằng lệnh sau trong terminal

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
4

Bây giờ, hãy thử truy cập vào các biến mà chúng ta vừa tạo. Nó tương tự như cách chúng ta truy cập các biến môi trường toàn cầu

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
5

Bây giờ, hãy hủy kích hoạt môi trường ảo và thử chạy lại tập lệnh python

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
6

Nó sẽ trả về Không

Lưu trữ chúng trong một. tập tin env

Bên trong thư mục gốc của bạn, thư mục chứa môi trường ảo của bạn, hãy tạo một tệp có tên “. env. ” Thêm các biến bên trong tệp

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
7

Chúng ta sẽ cần cài đặt thư viện python để đọc các biến

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
8

Hãy đọc các biến trong Python

export globalSecretUser=global_rahul1999
export globalSecretKey = global_xy76hUihk
9

Đừng quên thêm các. tập tin env bên trong của bạn. tập tin gitignore. Điều này sẽ đảm bảo rằng thông tin đăng nhập của bạn không bị đẩy vào kho lưu trữ git của bạn

import os
print(os.environ) 
# This will print a dictionary with 
# all the global environment variables
0

Cách thuận tiện nhất

Theo ý kiến ​​của tôi, cách thuận tiện nhất là lưu trữ chúng bên trong một. tập tin env

  • Họ là địa phương cho dự án của bạn
  • Bạn không cần phải lo lắng về việc 'gỡ cài đặt' chúng
  • Nếu bạn thêm chúng vào. gitignore, nó an toàn với thế giới bên ngoài
  • Nếu bạn triển khai tập lệnh của mình dưới dạng chức năng serverless, bạn sẽ cần sử dụng “load_dotenve()” để đọc các biến môi trường được lưu trữ bên trong tệp cấu hình của môi trường Azure/AWS của bạn

Mặc dù nó có nhiều ưu điểm, nhưng có một nhược điểm là khi chúng ta có một biến bên trong. tệp env có cùng tên với biến môi trường toàn cầu. Truy cập biến trong Python sẽ trả về giá trị toàn cục vì chúng ta không sử dụng “unset” để hủy đặt giá trị biến hoặc “export” để gán giá trị mới cho biến

Làm cách nào để mã hóa mật khẩu trong Python?

Các bước. .
Nhập khẩu dương xỉ
Sau đó tạo khóa mã hóa, có thể được sử dụng để mã hóa và giải mã
Chuyển đổi chuỗi thành chuỗi byte để có thể mã hóa
Ví dụ lớp Fernet với khóa mã hóa
Sau đó mã hóa chuỗi bằng ví dụ Fernet

Có an toàn để lưu trữ mật khẩu trong một biến Python không?

Không có vấn đề gì với việc lưu trữ mật khẩu văn bản thuần túy trong một biến bộ nhớ . Việc một ứng dụng giải mã một mật khẩu an toàn và lưu trữ nó trong bộ nhớ là điều khá phổ biến và sẽ là bình thường.

Có cách nào an toàn để lưu trữ mật khẩu không?

Không có cách nào tốt hơn để giữ mật khẩu của bạn an toàn hơn là sử dụng trình quản lý mật khẩu, như Bitwarden . Trình quản lý mật khẩu tốt không chỉ lưu trữ mật khẩu, chẳng hạn như tạo mật khẩu mạnh và giám sát vi phạm dữ liệu để tìm mật khẩu bị xâm phạm.

Cách an toàn nhất để theo dõi mật khẩu là gì?

Có và một trong những giải pháp phổ biến nhất là trình quản lý mật khẩu . Trình quản lý mật khẩu giữ tất cả mật khẩu ở một nơi, được bảo mật khỏi những con mắt tò mò bằng mã hóa để ngăn chặn tin tặc. Có mật khẩu không an toàn là một trong những cách dễ dàng nhất mà tin tặc hoặc thậm chí người mà bạn biết có thể truy cập vào tài khoản của bạn.