Làm thế nào để bạn mã hóa trong python?

Mật mã là một quá trình chủ yếu được sử dụng để liên lạc an toàn và bảo mật. Nó hoạt động trên các khái niệm và thuật toán toán học khác nhau để chuyển dữ liệu được mã hóa thành một mã bí mật khó giải mã. Nó liên quan đến quá trình mã hóa và giải mã dữ liệu, ví dụ:. Nếu tôi cần gửi thông tin cá nhân của mình cho ai đó qua thư, tôi có thể chuyển đổi thông tin bằng các kỹ thuật Mã hóa và gửi nó, mặt khác, người nhận sẽ giải mã thông tin nhận được bằng Kỹ thuật giải mã và sẽ không có sự giả mạo dữ liệu nào giữa chúng.

Bản mã là dữ liệu hoặc văn bản được mã hóa thành mã bí mật bằng thuật toán toán học, nó có thể được giải mã bằng các thuật toán toán học khác nhau. Mã hóa đang chuyển đổi văn bản thành một thông báo bí mật, về mặt kỹ thuật được gọi là chuyển đổi văn bản gốc thành văn bản mã hóa và Giải mã đang chuyển đổi văn bản mã hóa trở lại văn bản gốc để chỉ những người dùng được ủy quyền mới có thể giải mã và sử dụng dữ liệu. Nói chung, nó sử dụng một khóa mà cả người gửi và người nhận đều biết để họ có thể mã hóa và giải mã văn bản.    

Python có các mô-đun/thư viện sau được sử dụng để mã hóa, cụ thể là

TUYỆT VỜI

Đăng ký hàng tuần của bạn về những gì đang xảy ra trong công nghệ mới nổi

E-mail

Đăng ký

  • mật mã
  • Đơn giản-Mật mã
  • Hashlib. MD5 & SHA1 [Bảo mật nhất]

Trong bài viết này, chúng ta sẽ khám phá

  1. Mã hóa dữ liệu
  2. Giải mã dữ liệu
  3. Thư viện được sử dụng cho mật mã

1. mật mã

Mật mã là gói python hữu ích trong việc Mã hóa và Giải mã dữ liệu trong python. Nó cung cấp các công thức mã hóa cho các nhà phát triển python

Hãy để chúng tôi khám phá Mật mã học và xem cách mã hóa và giải mã dữ liệu bằng cách sử dụng nó.  

Thực hiện

Trước tiên, chúng tôi cần cài đặt thư viện bằng cách sử dụng pip cài đặt mật mã.

a. Nhập thư viện

Chức năng Fernet được sử dụng để mã hóa và giải mã trong Mật mã học. Hãy để chúng tôi nhập chức năng Fernet từ thư viện

from cryptography.fernet import Fernet

b. Tạo khóa

Mật mã hoạt động dựa trên xác thực mà chúng tôi sẽ cần tạo khóa. Hãy định nghĩa một hàm để tạo khóa và ghi nó vào một tệp. Chức năng này sẽ tạo một tệp khóa nơi khóa được tạo của chúng tôi sẽ được lưu trữ

# Generating the key and writing it to a file
def genwrite_key[]:
    key = Fernet.generate_key[]
    with open["pass.key", "wb"] as key_file:
        key_file.write[key]

Hàm này sẽ tạo pass. key trong thư mục của bạn như trong hình bên dưới

c. Đang tải khóa

Khóa được tạo ở trên là một khóa duy nhất và nó sẽ được sử dụng tiếp cho tất cả các quá trình mã hóa và giải mã, vì vậy, để gọi đi gọi lại khóa này, chúng ta hãy xác định một hàm để tải khóa bất cứ khi nào được yêu cầu.  

# Function to load the key
def call_key[]:
                  return open["pass.key", "rb"].read[]

d. Mã hóa dữ liệu

Bước tiếp theo sẽ chuyển thông điệp bạn muốn mã hóa trong chức năng mã hóa, khởi tạo lớp Fernet và mã hóa dữ liệu bằng chức năng mã hóa.  

key = call_key[]
slogan = "Hello!! Welcome to AIM!!".encode[]
a = Fernet[key]
coded_slogan = a.encrypt[slogan]
print[coded_slogan]

Như bạn có thể thấy, chúng tôi đã mã hóa thành công dữ liệu

e. Giải mã dữ liệu

Tin nhắn sẽ được giải mã bằng cùng một khóa mà chúng tôi đã sử dụng để mã hóa nó và bằng cách sử dụng chức năng giải mã. Hãy để chúng tôi giải mã tin nhắn được mã hóa

key = call_key[]
b = Fernet[key]
decoded_slogan = b.decrypt[coded_slogan]
print[decoded_slogan]

Như bạn có thể thấy ở đây, chúng tôi đã giải mã thành công tin nhắn. Trong khi sử dụng mật mã, cần giữ cho tệp Key an toàn và bảo mật để giải mã tin nhắn vì nếu Key bị thất lạc thì tin nhắn/dữ liệu sẽ không được giải mã

Tương tự như vậy, mô-đun Mật mã có thể được sử dụng để chuyển đổi tệp dữ liệu/văn bản, chúng ta chỉ cần chuyển tệp cho đối số và mã hóa và giải mã nó

2. Mật mã đơn giản

Nó là một mô-đun python nhanh và chuyển đổi văn bản rõ thành văn bản mã hóa và văn bản mã hóa thành văn bản thuần túy trong vài giây và chỉ với một dòng mã.  

Thực hiện

Trước tiên, chúng tôi cần cài đặt thư viện bằng cách sử dụng pip cài đặt mã hóa đơn giản

a. Đang tải thư viện

from simplecrypt import encrypt, decrypt

b. Mã hóa và giải mã

Simple-crypt có hai chức năng được xác định trước mã hóa và giải mã điều khiển quá trình mã hóa và giải mã. Để mã hóa, chúng ta cần gọi hàm mã hóa và chuyển khóa và tin nhắn để được mã hóa.  

message = "Hello!! Welcome to AIM!!"
ciphercode = encrypt['AIM', message]
print[ciphercode]

Tương tự, chúng ta có thể gọi hàm giải mã và giải mã thông báo gốc từ bản mã này

________số 8

Ở đây bạn có thể thấy rằng chúng tôi đã sử dụng “AIM” làm mật khẩu và mật khẩu này cũng tương tự đối với việc mã hóa và giải mã.  

Trong mã hóa đơn giản, chúng ta nên nhớ rằng phải cung cấp cùng một khóa để mã hóa và giải mã nếu không thông điệp sẽ không được giải mã trở lại ban đầu.  

3. Hashlib

Hashlib là một thư viện python mã nguồn mở được sử dụng để mã hóa và nó chứa hầu hết các thuật toán băm phổ biến được các công ty công nghệ lớn sử dụng cho mục đích bảo mật. Hash là một hàm lấy đầu vào có độ dài thay đổi và đưa ra chuỗi đầu ra có độ dài cố định. Không giống như các mô-đun đã thảo luận trước đó, giải mã Hashlib là một công việc rất khó khăn và tốn thời gian, đây là lý do tại sao Hashing được coi là mã hóa an toàn và bảo mật nhất.

Các hàm Hashlib mà chúng ta sẽ khám phá là MD5 và SHA1

3. 1 MD5

Thuật toán/Hàm MD5 tạo ra giá trị băm là 128 bit. Nó chuyển đổi các chuỗi thành byte để nó được chấp nhận bởi hàm băm. MD5 chủ yếu được sử dụng để kiểm tra tính toàn vẹn của dữ liệu. Nó được xác định trước trong hashlib

Thực hiện

Chúng tôi cần cài đặt thư viện hashlib để sử dụng MD5 bằng cách sử dụng, pip cài đặt hashlib

a. Nhập thư viện

import hashlib

b. Mã hóa dữ liệu

Để mã hóa dữ liệu, chúng ta cần chuyển thông điệp/dữ liệu cho hàm MD5 để chuyển thành byte. Tại đây bạn sẽ thấy rằng chúng ta sẽ gõ 'b' trước khi nhập tin nhắn vì nó chuyển đổi chuỗi thành byte để nó được chấp nhận bởi hàm băm. Hàm hexdigest sẽ mã hóa tin nhắn và trả về tin nhắn đã mã hóa dưới dạng chuỗi HEX.

# Generating the key and writing it to a file
def genwrite_key[]:
    key = Fernet.generate_key[]
    with open["pass.key", "wb"] as key_file:
        key_file.write[key]
0

Nếu chúng ta không muốn tin nhắn được mã hóa trong chuỗi HEX và hiển thị nó theo chuỗi byte thì chúng ta sẽ sử dụng chức năng thông báo

# Generating the key and writing it to a file
def genwrite_key[]:
    key = Fernet.generate_key[]
    with open["pass.key", "wb"] as key_file:
        key_file.write[key]
1

3. 2 SHA1

Thuật toán băm an toàn được bảo mật hơn MD5. Đó là một tập hợp các thuật toán như SHA1, SHA256, v.v. Nó được sử dụng rộng rãi cho các ứng dụng mật mã

Chúng tôi đã nhập thư viện hashlib nên chúng tôi sẽ Mã hóa trực tiếp tin nhắn/dữ liệu bằng SHA1.  

Mã hóa dữ liệu

Để mã hóa dữ liệu, chúng ta cần chuyển thông điệp/dữ liệu cho hàm SHA1 để chuyển thành byte. Tương tự như MD5 ở đây, bạn cũng sẽ thấy rằng chúng tôi sẽ nhập 'b' trước khi nhập tin nhắn vì nó chuyển đổi chuỗi thành byte để nó được chấp nhận bởi hàm băm. Hàm hexdigest sẽ mã hóa tin nhắn và trả về tin nhắn đã mã hóa dưới dạng chuỗi HEX.

# Generating the key and writing it to a file
def genwrite_key[]:
    key = Fernet.generate_key[]
    with open["pass.key", "wb"] as key_file:
        key_file.write[key]
2

Tương tự như MD5 nếu chúng ta không muốn tin nhắn được mã hóa theo chuỗi HEX và hiển thị nó theo chuỗi byte thì chúng ta sẽ sử dụng hàm digest

# Generating the key and writing it to a file
def genwrite_key[]:
    key = Fernet.generate_key[]
    with open["pass.key", "wb"] as key_file:
        key_file.write[key]
3

Tương tự, chúng ta có thể thử các thuật toán băm khác nhau để Mã hóa/Mã hóa

Sự kết luận

Trong bài viết này, chúng tôi đã đi qua

  1. Mật mã là gì và làm thế nào chúng ta có thể sử dụng nó để mã hóa và giải mã dữ liệu/tin nhắn?
  2. Chúng tôi đã học cách mã hóa đơn giản làm cho việc mã hóa và giải mã trở thành một nhiệm vụ dễ dàng chỉ với một dòng mã
  3. Chúng tôi đã khám phá các thuật toán/chức năng an toàn và bảo mật nhất để mã hóa tin nhắn/dữ liệu và cách triển khai nó

Nhiều câu chuyện AIM tuyệt vời hơn

Thế giới chuyển sang trò chơi Web3, Ấn Độ vẫn xây dựng Esports

Được tạo bởi con người hoặc AI. OpenAI để đánh dấu nội dung của nó

Mối liên kết còn thiếu của việc học tự giám sát

Thiên thần & Ác quỷ của AI

Rakuten được chứng nhận là Công ty tốt nhất cho các nhà khoa học dữ liệu

Một nhà khoa học dữ liệu đầy tham vọng hiện đang theo đuổi bằng MBA về Khoa học dữ liệu ứng dụng, quan tâm đến thị trường tài chính. Tôi có kinh nghiệm về Phân tích dữ liệu, Trực quan hóa dữ liệu, Học máy, Tạo bảng điều khiển và Viết bài liên quan đến Khoa học dữ liệu

Làm cách nào để mã hóa 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 nhập và sau đó với sự trợ giúp của . it can be encrypted.

Có thể mã hóa tệp Python không?

Trong Python, có thể mã hóa và giải mã tệp trước khi truyền sang kênh liên lạc . Đối với điều này, bạn sẽ phải sử dụng plugin PyCrypto.

Chủ Đề