Hướng dẫn secure file python - python tệp an toàn

& nbsp; · 11 phút Đọc · Cập nhật tháng 7 năm 2022 · Hacking đạo đức · 11 min read · Updated jul 2022 · Ethical Hacking · 11 min read · Updated jul 2022 · Ethical Hacking

Nội dung chính ShowShow

  • Tạo khóa
  • Mã hóa văn bản
  • Mã hóa tệp
  • Mã hóa tệp bằng mật khẩu
  • Sự kết luận
  • Cũng đọc
  • Bảng bình luận
  • Làm cách nào để tạo một tệp được mã hóa?
  • Làm thế nào để bạn mã hóa một tệp lớn trong Python?
  • Python đã xây dựng trong mã hóa?
  • Cách an toàn nhất để mã hóa một tệp là gì?

Tiết lộ: Bài đăng này có thể chứa các liên kết liên kết, có nghĩa là khi bạn nhấp vào liên kết và mua hàng, chúng tôi nhận được hoa hồng.: This post may contain affiliate links, meaning when you click the links and make a purchase, we receive a commission.: This post may contain affiliate links, meaning when you click the links and make a purchase, we receive a commission.

Mã hóa là quá trình mã hóa một phần thông tin theo cách mà chỉ các bên được ủy quyền mới có thể truy cập vào nó. Nó cực kỳ quan trọng vì nó cho phép bạn bảo vệ dữ liệu một cách an toàn mà bạn không muốn bất cứ ai nhìn thấy hoặc truy cập.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng Python để mã hóa các tệp hoặc bất kỳ đối tượng byte nào (cũng là đối tượng chuỗi) bằng thư viện mật mã.

Chúng tôi sẽ sử dụng mã hóa đối xứng, có nghĩa là cùng một khóa mà chúng tôi sử dụng để mã hóa dữ liệu, cũng có thể sử dụng để giải mã. Có rất nhiều thuật toán mã hóa ngoài kia. Thư viện chúng tôi sẽ sử dụng được xây dựng trên thuật toán AES.

Lưu ý: Điều quan trọng là phải hiểu sự khác biệt giữa mã hóa và & NBSP; Các thuật toán băm. Trong & nbsp; mã hóa, bạn có thể truy xuất dữ liệu gốc khi bạn có khóa, trong đó & nbsp; các hàm băm, bạn không thể; Đó là lý do tại sao chúng được gọi là mã hóa một chiều.

Mục lục:

  • Tạo khóa
  • Mã hóa văn bản
  • Mã hóa tệp
  • Mã hóa tệp bằng mật khẩu

Sự kết luận  How to Extract and Decrypt Chrome Cookies in Python.

Cũng đọc

def load_key():
    """
    Loads the key from the current directory named `key.key`
    """
    return open("key.key", "rb").read()
1:

pip3 install cryptography

Bảng bình luận

from cryptography.fernet import Fernet

Tạo khóa

Mã hóa văn bản

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)

Mã hóa tệp

Mã hóa tệp bằng mật khẩu

def load_key():
    """
    Loads the key from the current directory named `key.key`
    """
    return open("key.key", "rb").read()

Mã hóa văn bản

Mã hóa tệp

Mã hóa tệp bằng mật khẩu

# generate and write a new key
write_key()

Sự kết luận

# load the previously generated key
key = load_key()

Cũng đọc

def load_key():
    """
    Loads the key from the current directory named `key.key`
    """
    return open("key.key", "rb").read()
1:

message = "some secret message".encode()

Bảng bình luận

# initialize the Fernet class
f = Fernet(key)

Làm cách nào để tạo một tệp được mã hóa?

pip3 install cryptography
0

Làm thế nào để bạn mã hóa một tệp lớn trong Python?

Python đã xây dựng trong mã hóa?

Cách an toàn nhất để mã hóa một tệp là gì?

pip3 install cryptography
2

Output:

from cryptography.fernet import Fernet
0

Tiết lộ: Bài đăng này có thể chứa các liên kết liên kết, có nghĩa là khi bạn nhấp vào liên kết và mua hàng, chúng tôi nhận được hoa hồng.: This post may contain affiliate links, meaning when you click the links and make a purchase, we receive a commission.

from cryptography.fernet import Fernet
1
from cryptography.fernet import Fernet
2

Mã hóa là quá trình mã hóa một phần thông tin theo cách mà chỉ các bên được ủy quyền mới có thể truy cập vào nó. Nó cực kỳ quan trọng vì nó cho phép bạn bảo vệ dữ liệu một cách an toàn mà bạn không muốn bất cứ ai nhìn thấy hoặc truy cập.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng Python để mã hóa các tệp hoặc bất kỳ đối tượng byte nào (cũng là đối tượng chuỗi) bằng thư viện mật mã.

Chúng tôi sẽ sử dụng mã hóa đối xứng, có nghĩa là cùng một khóa mà chúng tôi sử dụng để mã hóa dữ liệu, cũng có thể sử dụng để giải mã. Có rất nhiều thuật toán mã hóa ngoài kia. Thư viện chúng tôi sẽ sử dụng được xây dựng trên thuật toán AES. How to Encrypt and Decrypt PDF Files in Python.

Mã hóa tệp

Mã hóa tệp bằng mật khẩu

from cryptography.fernet import Fernet
3

Sự kết luận

from cryptography.fernet import Fernet
4

Cũng đọc

def load_key():
    """
    Loads the key from the current directory named `key.key`
    """
    return open("key.key", "rb").read()
1:

from cryptography.fernet import Fernet
5

Bảng bình luận

from cryptography.fernet import Fernet
6

Làm cách nào để tạo một tệp được mã hóa?

from cryptography.fernet import Fernet
7

Làm thế nào để bạn mã hóa một tệp lớn trong Python?

Python đã xây dựng trong mã hóa?

Hướng dẫn secure file python - python tệp an toàn

Cách an toàn nhất để mã hóa một tệp là gì?

from cryptography.fernet import Fernet
8

Tiết lộ: Bài đăng này có thể chứa các liên kết liên kết, có nghĩa là khi bạn nhấp vào liên kết và mua hàng, chúng tôi nhận được hoa hồng.: This post may contain affiliate links, meaning when you click the links and make a purchase, we receive a commission.

Mã hóa là quá trình mã hóa một phần thông tin theo cách mà chỉ các bên được ủy quyền mới có thể truy cập vào nó. Nó cực kỳ quan trọng vì nó cho phép bạn bảo vệ dữ liệu một cách an toàn mà bạn không muốn bất cứ ai nhìn thấy hoặc truy cập.

from cryptography.fernet import Fernet
9

Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng Python để mã hóa các tệp hoặc bất kỳ đối tượng byte nào (cũng là đối tượng chuỗi) bằng thư viện mật mã.

Chúng tôi sẽ sử dụng mã hóa đối xứng, có nghĩa là cùng một khóa mà chúng tôi sử dụng để mã hóa dữ liệu, cũng có thể sử dụng để giải mã. Có rất nhiều thuật toán mã hóa ngoài kia. Thư viện chúng tôi sẽ sử dụng được xây dựng trên thuật toán AES.

Mã hóa tệp bằng mật khẩu

Sự kết luận

Cũng đọc

def load_key():
    """
    Loads the key from the current directory named `key.key`
    """
    return open("key.key", "rb").read()
1:

Bảng bình luận

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
0

Làm cách nào để tạo một tệp được mã hóa?

# generate and write a new key
write_key()
6:

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
1

Làm thế nào để bạn mã hóa một tệp lớn trong Python?

Python đã xây dựng trong mã hóa?

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
2

Chúng tôi khởi tạo thuật toán Scrypt bằng cách truyền:

  • # generate and write a new key
    write_key()
    7.
  • # generate and write a new key
    write_key()
    8 mong muốn của khóa (32 trong trường hợp này).
  • # generate and write a new key
    write_key()
    9: Tham số chi phí CPU/bộ nhớ, phải lớn hơn 1 và là công suất 2.
  • # load the previously generated key
    key = load_key()
    0: Tham số kích thước khối.
  • # load the previously generated key
    key = load_key()
    1: Tham số song song.

Như đã đề cập trong tài liệu,

# generate and write a new key
write_key()
9,
# load the previously generated key
key = load_key()
0 và
# load the previously generated key
key = load_key()
1 có thể điều chỉnh chi phí tính toán và bộ nhớ của thuật toán Scrypt. RFC 7914 khuyến nghị các giá trị là
# load the previously generated key
key = load_key()
5,
# load the previously generated key
key = load_key()
6, trong đó giấy Scrypt ban đầu cho thấy
# generate and write a new key
write_key()
9 nên có giá trị tối thiểu là
# load the previously generated key
key = load_key()
8 cho đăng nhập tương tác hoặc
# load the previously generated key
key = load_key()
9 cho các tệp nhạy hơn; Bạn có thể kiểm tra tài liệu để biết thêm thông tin.

Tiếp theo, chúng tôi tạo ra một chức năng để tải muối được tạo trước đó:

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
3

Bây giờ chúng ta có các hàm tạo muối và các hàm dẫn xuất khóa, hãy tạo chức năng cốt lõi tạo khóa từ mật khẩu:

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
4

Hàm trên chấp nhận các đối số sau:

  • message = "some secret message".encode()
    0: Chuỗi mật khẩu để tạo khóa từ.
  • message = "some secret message".encode()
    1: Một số nguyên biểu thị kích thước của muối để tạo ra.
  • message = "some secret message".encode()
    2: Một boolean cho biết liệu chúng ta có tải muối được tạo ra trước đó hay không.
  • message = "some secret message".encode()
    3: Một boolean để cho biết liệu chúng ta có lưu muối được tạo ra hay không.

Sau khi chúng tôi tải hoặc tạo muối mới, chúng tôi lấy phím từ mật khẩu bằng hàm

message = "some secret message".encode()
4 của chúng tôi và cuối cùng, trả lại khóa dưới dạng văn bản được mã hóa cơ sở64.

Bây giờ chúng ta có thể sử dụng cùng một hàm

# generate and write a new key
write_key()
2 mà chúng ta đã xác định trước đó:

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
5

Đối với chức năng

# generate and write a new key
write_key()
1, chúng tôi thêm một khối Except đơn giản để xử lý ngoại lệ khi mật khẩu sai:

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
6

Đáng kinh ngạc! Hãy sử dụng

message = "some secret message".encode()
7 để chúng ta có thể chuyển các đối số từ dòng lệnh:

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
7

Hãy kiểm tra tập lệnh của chúng tôi bằng cách mã hóa

# generate and write a new key
write_key()
4 như trước đây:

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
8

Bạn sẽ được nhắc nhập mật khẩu,

message = "some secret message".encode()
9 ẩn các ký tự bạn gõ, vì vậy nó an toàn hơn. Bạn cũng sẽ nhận thấy rằng tệp
# initialize the Fernet class
f = Fernet(key)
0 được tạo.You'll also notice that the
# initialize the Fernet class
f = Fernet(key)
0 file is generated.You'll also notice that the
# initialize the Fernet class
f = Fernet(key)
0 file is generated.

Nếu bạn mở tệp mục tiêu

# generate and write a new key
write_key()
4, bạn sẽ thấy nó được mã hóa. Bây giờ chúng ta hãy cố gắng giải mã nó bằng mật khẩu sai:

def write_key():
    """
    Generates a key and save it into a file
    """
    key = Fernet.generate_key()
    with open("key.key", "wb") as key_file:
        key_file.write(key)
9

# generate and write a new key
write_key()
4 vẫn còn như vậy. Hãy truyền mật khẩu chính xác được sử dụng trong mã hóa:

def load_key():
    """
    Loads the key from the current directory named `key.key`
    """
    return open("key.key", "rb").read()
0

Kinh ngạc! Bạn sẽ thấy rằng

# generate and write a new key
write_key()
4 đã trở lại dạng ban đầu.

Lưu ý rằng nếu bạn tạo ra một loại muối khác (bằng cách truyền

# initialize the Fernet class
f = Fernet(key)
4 hoặc
# initialize the Fernet class
f = Fernet(key)
5)) trong khi giải mã, ngay cả khi đó là mật khẩu chính xác, bạn sẽ không thể khôi phục tệp như một loại muối mới sẽ được tạo để không vượt qua
# initialize the Fernet class
f = Fernet(key)
4 hoặc
# initialize the Fernet class
f = Fernet(key)
5 khi giải mã.

Sự kết luận

Kiểm tra tài liệu chính thức của Cryptography để biết thêm chi tiết và hướng dẫn.

Lưu ý rằng bạn cần cẩn thận với các tệp lớn, vì tệp sẽ cần hoàn toàn trên bộ nhớ để phù hợp để mã hóa. Bạn cần xem xét sử dụng một số phương pháp phân tách dữ liệu hoặc nén tệp cho các tệp lớn!

Dưới đây là mã đầy đủ cho cả hai kỹ thuật được sử dụng trong hướng dẫn này.

Bạn có thể xây dựng một ransomware bằng mã này. Bạn có thể kiểm tra hack đạo đức của chúng tôi với ebook Python để xây dựng nó cùng với 23 công cụ hack khác!

Đọc thêm: & nbsp; Cách tải xuống tất cả các hình ảnh từ một trang web trong Python.: How to Download All Images from a Web Page in Python.: How to Download All Images from a Web Page in Python.

Happy Coding ♥

Xem đầy đủ mã


Cũng đọc


Bảng bình luận

Làm cách nào để tạo một tệp được mã hóa?

Cách mã hóa một tập tin...

Nhấp chuột phải (hoặc nhấn và giữ) một tệp hoặc thư mục và chọn Thuộc tính ..

Chọn nút nâng cao và chọn hộp kiểm mã hóa để bảo mật dữ liệu ..

Chọn OK để đóng cửa sổ Thuộc tính nâng cao, chọn Áp dụng và sau đó chọn OK ..

Làm thế nào để bạn mã hóa một tệp lớn trong Python?

Đọc n byte dữ liệu (RAW_CHUNK).

Mã hóa n byte với fernet để tạo một khối m byte (enc_chunk) ..

Sử dụng Len (enc_chunk).to_bytes (4, "lớn") để viết kích thước của đoạn được mã hóa vào tệp ..

Viết đoạn được mã hóa vào tệp ..

Phá vỡ khi tôi đọc B "".

Python đã xây dựng trong mã hóa?

Python không có sơ đồ mã hóa tích hợp, không.Bạn cũng nên nghiêm túc lưu trữ dữ liệu được mã hóa;Các sơ đồ mã hóa tầm thường mà một nhà phát triển hiểu là không an toàn và một sơ đồ đồ chơi có thể bị nhầm lẫn với sơ đồ an toàn của một nhà phát triển ít kinh nghiệm.Nếu bạn mã hóa, mã hóa đúng., no. You also should take encrypted data storage serious; trivial encryption schemes that one developer understands to be insecure and a toy scheme may well be mistaken for a secure scheme by a less experienced developer. If you encrypt, encrypt properly., no. You also should take encrypted data storage serious; trivial encryption schemes that one developer understands to be insecure and a toy scheme may well be mistaken for a secure scheme by a less experienced developer. If you encrypt, encrypt properly.

Cách an toàn nhất để mã hóa một tệp là gì?

Tùy chọn mã hóa BitLocker là phương thức ưa thích và an toàn nhất, nhưng nó sẽ không cho phép bạn dễ dàng chọn và mã hóa các tệp và thư mục riêng lẻ (bạn có thể thực hiện điều này bằng cách tạo một thùng chứa tệp được mã hóa bằng VHD.)BitLocker is the preferred and most secure method, but it will not allow you easily to select and encrypt individual files and folders (you can do this by creating an encrypted file container using VHD.)BitLocker is the preferred and most secure method, but it will not allow you easily to select and encrypt individual files and folders (you can do this by creating an encrypted file container using VHD.)