Chuỗi giải mã mã hóa đơn giản python

Mật mã là nghệ thuật giao tiếp giữa hai người dùng thông qua các tin nhắn được mã hóa. Khoa học về mật mã xuất hiện với động cơ cơ bản là cung cấp bảo mật cho các thông điệp bí mật được chuyển từ bên này sang bên khác

Show

Mật mã được định nghĩa là nghệ thuật và khoa học che giấu thông điệp để giới thiệu quyền riêng tư và bí mật như được công nhận trong bảo mật thông tin

Thuật ngữ mật mã học

Các thuật ngữ thường được sử dụng trong mật mã được giải thích ở đây -

Văn bản thô

Tin nhắn văn bản thuần túy là văn bản có thể đọc được và có thể được hiểu bởi tất cả người dùng. Văn bản thuần túy là thông điệp trải qua quá trình mã hóa

văn bản mật mã

Văn bản mật mã là thông điệp thu được sau khi áp dụng mật mã trên văn bản thuần túy

mã hóa

Quá trình chuyển đổi văn bản thuần thành văn bản mật mã được gọi là mã hóa. Nó còn được gọi là mã hóa

giải mã

Quá trình chuyển đổi văn bản mật mã thành văn bản thuần túy được gọi là quá trình giải mã. Nó còn được gọi là giải mã

Sơ đồ đưa ra dưới đây cho thấy một minh họa về quá trình mã hóa hoàn chỉnh -

Chuỗi giải mã mã hóa đơn giản python

Đặc điểm của mật mã hiện đại

Các đặc điểm cơ bản của mật mã hiện đại như sau -

  • Nó hoạt động trên các chuỗi bit

  • Nó sử dụng các thuật toán toán học để bảo mật thông tin

  • Nó yêu cầu các bên quan tâm đến kênh liên lạc an toàn để đạt được quyền riêng tư

Mã hóa độ mạnh kép, còn được gọi là mã hóa nhiều lần, là quá trình mã hóa một hoặc nhiều lần một văn bản đã được mã hóa, bằng cùng một thuật toán/mẫu khác nhau

Các tên gọi khác của mã hóa cường độ kép bao gồm mã hóa theo tầng hoặc mật mã theo tầng

Các cấp độ mã hóa cường độ kép

Mã hóa cường độ kép bao gồm các mức mã hóa khác nhau được giải thích ở đây dưới –

Lớp mã hóa đầu tiên

Văn bản mật mã được tạo từ thông báo có thể đọc được ban đầu bằng thuật toán băm và khóa đối xứng. Các khóa đối xứng sau này được mã hóa với sự trợ giúp của các khóa bất đối xứng. Minh họa tốt nhất cho mẫu này là kết hợp thông báo băm của văn bản mật mã vào một viên nang. Người nhận sẽ tính toán thông báo trước và sau đó giải mã văn bản để xác minh rằng văn bản không bị giả mạo ở giữa

Lớp mã hóa thứ hai

Lớp mã hóa thứ hai là quá trình thêm một lớp nữa vào văn bản mật mã bằng thuật toán giống hoặc thuật toán khác. Thông thường, mật khẩu đối xứng dài 32 bit được sử dụng cho cùng

Lớp mã hóa thứ ba

Trong quá trình này, gói mã hóa được truyền qua kết nối SSL/TLS tới đối tác liên lạc

Sơ đồ sau đây cho thấy quá trình mã hóa kép bằng hình ảnh –

Chuỗi giải mã mã hóa đơn giản python

Mật mã lai

Mật mã lai là quá trình sử dụng nhiều mật mã thuộc các loại khác nhau bằng cách bao gồm các lợi ích của từng mật mã. Có một cách tiếp cận phổ biến thường được áp dụng để tạo khóa bí mật ngẫu nhiên cho mật mã đối xứng và sau đó mã hóa khóa này thông qua mật mã khóa bất đối xứng

Do mẫu này, bản thân thông điệp ban đầu được mã hóa bằng mật mã đối xứng và sau đó sử dụng khóa bí mật. Người nhận sau khi nhận được tin nhắn sẽ giải mã tin nhắn bằng khóa bí mật trước, sử dụng khóa riêng của mình và sau đó sử dụng khóa được chỉ định để giải mã tin nhắn

Python là một ngôn ngữ mã nguồn mở, cấp cao, thông dịch, tương tác và hướng đối tượng. Nó được thiết kế để rất dễ đọc. Cú pháp của ngôn ngữ Python dễ hiểu và thường xuyên sử dụng các từ khóa tiếng Anh

Các tính năng của ngôn ngữ Python

Python cung cấp các tính năng chính sau đây –

Phiên dịch

Python được xử lý trong thời gian chạy bằng trình thông dịch. Không cần biên dịch chương trình trước khi thực hiện. Nó tương tự như PERL và PHP

hướng đối tượng

Python tuân theo phong cách hướng đối tượng và các mẫu thiết kế. Nó bao gồm định nghĩa lớp với các tính năng khác nhau như đóng gói và đa hình

Các điểm chính của ngôn ngữ Python

Các điểm chính của ngôn ngữ lập trình Python như sau –

  • Nó bao gồm các phương pháp và lập trình chức năng và cấu trúc cũng như các phương pháp lập trình hướng đối tượng

  • Nó có thể được sử dụng như một ngôn ngữ kịch bản hoặc ngôn ngữ lập trình

  • Nó bao gồm thu gom rác tự động

  • Nó bao gồm các kiểu dữ liệu động cấp cao và hỗ trợ kiểm tra kiểu động khác nhau

  • Python bao gồm một tính năng tích hợp với C, C++ và các ngôn ngữ như Java

Link tải về ngôn ngữ Python như sau − www. con trăn. org/downloadsNó bao gồm các gói dành cho các hệ điều hành khác nhau như các bản phân phối Windows, MacOS và Linux

Chuỗi giải mã mã hóa đơn giản python

Chuỗi Python

Khai báo cơ bản của chuỗi được hiển thị bên dưới -

str = 'Hello World!'

Danh sách Python

Danh sách của python có thể được khai báo dưới dạng các kiểu dữ liệu phức hợp, được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc vuông ([])

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

Bộ dữ liệu Python

Một bộ là kiểu dữ liệu động của Python bao gồm một số giá trị được phân tách bằng dấu phẩy. Tuples được kèm theo dấu ngoặc đơn

tinytuple = (123, 'john')

Từ điển Python

Từ điển Python là một loại bảng băm. Khóa từ điển có thể là hầu hết mọi loại dữ liệu của Python, thường là số hoặc chuỗi

tinydict = {'name': 'omkar','code':6734, 'dept': 'sales'}

Gói mật mã

Python bao gồm một gói có tên là mật mã cung cấp các công thức và nguyên hàm mật mã. Nó hỗ trợ Python 2. 7, Trăn 3. 4+ và PyPy 5. 3+. Quá trình cài đặt cơ bản của gói mật mã được thực hiện thông qua lệnh sau -

pip install cryptography

Có nhiều gói khác nhau với cả công thức nấu ăn cấp cao và giao diện cấp thấp cho các thuật toán mã hóa phổ biến như mật mã đối xứng, bản tóm tắt thông báo và hàm dẫn xuất chính

Trong suốt hướng dẫn này, chúng tôi sẽ sử dụng các gói Python khác nhau để triển khai các thuật toán mã hóa

Chương trước đã cung cấp cho bạn tổng quan về cài đặt Python trên máy tính cục bộ của bạn. Trong chương này, bạn sẽ tìm hiểu chi tiết về mật mã ngược và mã hóa của nó

Thuật toán mật mã ngược

Thuật toán mã hóa ngược có các tính năng sau -

  • Mã hóa ngược sử dụng mô hình đảo ngược chuỗi văn bản thuần túy để chuyển thành văn bản mật mã

  • Quá trình mã hóa và giải mã giống nhau

  • Để giải mã bản mã, người dùng chỉ cần đảo ngược bản mã để lấy văn bản thuần túy

Hạn chế

Nhược điểm chính của mật mã ngược là nó rất yếu. Một hacker có thể dễ dàng phá vỡ văn bản mật mã để lấy tin nhắn gốc. Do đó, mật mã ngược không được coi là lựa chọn tốt để duy trì kênh liên lạc an toàn,

Chuỗi giải mã mã hóa đơn giản python

Ví dụ

Xem xét một ví dụ trong đó câu lệnh Đây là chương trình để giải thích mật mã ngược sẽ được thực hiện với thuật toán mật mã ngược. Mã python sau đây sử dụng thuật toán để lấy đầu ra

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)

đầu ra

Bạn có thể thấy văn bản bị đảo ngược, đó là đầu ra như trong hình dưới đây –

Chuỗi giải mã mã hóa đơn giản python

Giải trình

  • Văn bản thuần túy được lưu trữ trong thông báo biến và biến đã dịch được sử dụng để lưu trữ văn bản mật mã được tạo

  • Độ dài của văn bản thuần túy được tính bằng cách sử dụng vòng lặp for và với sự trợ giúp của số chỉ mục. Các ký tự được lưu trữ trong biến văn bản mật mã đã dịch được in ở dòng cuối cùng

Trong chương trước, chúng ta đã xử lý mật mã ngược. Chương này nói chi tiết về mật mã Caesar

Thuật toán mật mã Caesar

Thuật toán của mật mã Caesar có các tính năng sau -

  • Kỹ thuật mật mã Caesar là phương pháp đơn giản và dễ dàng của kỹ thuật mã hóa

  • Nó là loại mật mã thay thế đơn giản

  • Mỗi chữ cái của văn bản thuần túy được thay thế bằng một chữ cái với một số vị trí cố định xuống theo bảng chữ cái

Sơ đồ sau đây mô tả hoạt động của việc triển khai thuật toán mật mã Caesar -

Chuỗi giải mã mã hóa đơn giản python

Việc thực hiện chương trình của thuật toán mật mã Caesar như sau -

def encrypt(text,s):
result = ""
   # transverse the plain text
   for i in range(len(text)):
      char = text[i]
      # Encrypt uppercase characters in plain text
      
      if (char.isupper()):
         result += chr((ord(char) + s-65) % 26 + 65)
      # Encrypt lowercase characters in plain text
      else:
         result += chr((ord(char) + s - 97) % 26 + 97)
      return result
#check the above function
text = "CEASER CIPHER DEMO"
s = 4

print "Plain Text : " + text
print "Shift pattern : " + str(s)
print "Cipher: " + encrypt(text,s)

đầu ra

Bạn có thể thấy mật mã Caesar, đó là đầu ra như trong hình dưới đây -

Chuỗi giải mã mã hóa đơn giản python

Giải trình

Ký tự văn bản thuần túy được duyệt qua từng ký tự một

  • Đối với mỗi ký tự trong văn bản thuần nhất định, hãy biến đổi ký tự đã cho theo quy tắc tùy thuộc vào quy trình mã hóa và giải mã văn bản

  • Sau khi làm theo các bước, một chuỗi mới được tạo ra được gọi là văn bản mật mã

Hack thuật toán mật mã Caesar

Văn bản mật mã có thể bị tấn công với nhiều khả năng khác nhau. Một trong những khả năng như vậy là Kỹ thuật Brute Force, liên quan đến việc thử mọi khóa giải mã có thể. Kỹ thuật này không đòi hỏi nhiều nỗ lực và tương đối đơn giản đối với một hacker.

Việc triển khai chương trình để hack thuật toán mật mã Caesar như sau -

message = 'GIEWIVrGMTLIVrHIQS' #encrypted message
LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

for key in range(len(LETTERS)):
   translated = ''
   for symbol in message:
      if symbol in LETTERS:
         num = LETTERS.find(symbol)
         num = num - key
         if num < 0:
            num = num + len(LETTERS)
         translated = translated + LETTERS[num]
      else:
         translated = translated + symbol
print('Hacking key #%s: %s' % (key, translated))

Xem xét văn bản mật mã được mã hóa trong ví dụ trước. Sau đó, đầu ra với các phương pháp hack có thể có bằng khóa và sử dụng kỹ thuật tấn công vũ phu như sau -

Chuỗi giải mã mã hóa đơn giản python

Đến đây các bạn đã được học về thuật toán mã hóa ngược và thuật toán mã hóa Caesar. Bây giờ, chúng ta hãy thảo luận về thuật toán ROT13 và cách triển khai thuật toán này

Giải thích thuật toán ROT13

Mật mã ROT13 đề cập đến dạng viết tắt Xoay theo 13 vị trí. Đây là trường hợp đặc biệt của Mật mã Caesar trong đó shift luôn là 13. Mỗi chữ cái được dịch chuyển 13 vị trí để mã hóa hoặc giải mã tin nhắn

Ví dụ

Sơ đồ sau đây giải thích quá trình thuật toán ROT13 bằng hình ảnh –

Chuỗi giải mã mã hóa đơn giản python

Mã chương trình

Chương trình triển khai thuật toán ROT13 như sau -

________số 8_______

Bạn có thể thấy đầu ra ROT13 như trong hình dưới đây –

Chuỗi giải mã mã hóa đơn giản python

Hạn chế

Thuật toán ROT13 sử dụng 13 ca. Do đó, rất dễ dàng dịch chuyển các ký tự theo cách ngược lại để giải mã văn bản mật mã.

Phân tích thuật toán ROT13

Thuật toán mật mã ROT13 được coi là trường hợp đặc biệt của Mật mã Caesar. Nó không phải là một thuật toán rất an toàn và có thể bị phá vỡ dễ dàng bằng phân tích tần số hoặc chỉ bằng cách thử 25 phím có thể trong khi ROT13 có thể bị phá vỡ bằng cách dịch chuyển 13 vị trí. Do đó, nó không bao gồm bất kỳ ứng dụng thực tế nào

Mật mã chuyển vị là một thuật toán mật mã trong đó thứ tự của các bảng chữ cái trong bản rõ được sắp xếp lại để tạo thành một văn bản mật mã. Trong quá trình này, các bảng chữ cái văn bản thuần túy thực tế không được bao gồm

Ví dụ

Một ví dụ đơn giản cho mật mã chuyển vị là mật mã chuyển vị cột trong đó mỗi ký tự trong văn bản thuần túy được viết theo chiều ngang với chiều rộng bảng chữ cái được chỉ định. Mật mã được viết theo chiều dọc, điều này tạo ra một văn bản mật mã hoàn toàn khác

Hãy xem xét văn bản đơn giản xin chào thế giới và chúng ta hãy áp dụng kỹ thuật chuyển vị cột đơn giản như hình bên dưới

Chuỗi giải mã mã hóa đơn giản python

Các ký tự văn bản thường được đặt theo chiều ngang và bản mã được tạo với định dạng dọc như. lỗ hổng lr. Bây giờ, người nhận phải sử dụng cùng một bảng để giải mã văn bản mật mã thành văn bản thuần túy

Mã số

Đoạn mã chương trình sau minh họa cách triển khai cơ bản của kỹ thuật chuyển vị cột -

def split_len(seq, length):
   return [seq[i:i + length] for i in range(0, len(seq), length)]
def encode(key, plaintext):
   order = {
      int(val): num for num, val in enumerate(key)
   }
ciphertext = ''

for index in sorted(order.keys()):
   for part in split_len(plaintext, len(key)):
      try:ciphertext += part[order[index]]
         except IndexError:
            continue
   return ciphertext
print(encode('3214', 'HELLO'))

Giải trình

  • Sử dụng hàm split_len(), chúng ta có thể chia các ký tự văn bản thuần túy, có thể được đặt ở định dạng cột hoặc hàng

  • Phương pháp mã hóa giúp tạo bản mã với khóa xác định số lượng cột và in bản mã bằng cách đọc các ký tự qua từng cột

đầu ra

Mã chương trình để triển khai cơ bản kỹ thuật chuyển vị cột cho đầu ra sau -

Chuỗi giải mã mã hóa đơn giản python

Lưu ý - Các nhà phân tích mật mã đã quan sát thấy sự cải thiện đáng kể về bảo mật tiền điện tử khi kỹ thuật chuyển vị được thực hiện. Họ cũng lưu ý rằng việc mã hóa lại văn bản mật mã bằng cách sử dụng cùng một mật mã chuyển vị sẽ tạo ra khả năng bảo mật tốt hơn

Trong chương trước, chúng ta đã tìm hiểu về Mã chuyển vị. Trong chương này, chúng ta hãy thảo luận về mã hóa của nó

kẹp kim loại

Cách sử dụng chính của plugin pyperclip trong ngôn ngữ lập trình Python là thực hiện mô-đun đa nền tảng để sao chép và dán văn bản vào khay nhớ tạm. Bạn có thể cài đặt mô-đun pyperclip python bằng lệnh như được hiển thị

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
0

Nếu yêu cầu đã tồn tại trong hệ thống, bạn có thể thấy đầu ra sau -

Chuỗi giải mã mã hóa đơn giản python

Mã số

Mã python để mã hóa mật mã chuyển vị trong đó pyperclip là mô-đun chính như bên dưới -

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
1

đầu ra

Mã chương trình để mã hóa mật mã chuyển vị trong đó pyperclip là mô-đun chính cung cấp đầu ra sau -

Chuỗi giải mã mã hóa đơn giản python

Giải trình

  • Hàm main() gọi đến EncryptMessage() bao gồm thủ tục tách các ký tự bằng cách sử dụng hàm len và lặp lại chúng theo định dạng cột

  • Chức năng chính được khởi tạo ở cuối để có đầu ra phù hợp

Trong chương này, bạn sẽ tìm hiểu quy trình giải mã mật mã chuyển vị

Mã số

Quan sát đoạn mã sau để hiểu rõ hơn về việc giải mã một mật mã chuyển vị. Văn bản mật mã cho thông báo Mã chuyển vị với khóa là 6 được tìm nạp dưới dạng Toners raiCntisippoh

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
2

Giải trình

Bản mã và khóa nói trên là hai giá trị được lấy làm tham số đầu vào để giải mã hoặc giải mã bản mã theo kỹ thuật đảo ngược bằng cách đặt các ký tự theo định dạng cột và đọc theo chiều ngang.

Bạn có thể đặt các chữ cái ở định dạng cột và sau đó kết hợp hoặc nối chúng lại với nhau bằng đoạn mã sau –

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
3

đầu ra

Mã chương trình để giải mã mật mã chuyển vị cho đầu ra sau -

Chuỗi giải mã mã hóa đơn giản python

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. Bạn có thể cài đặt plugin này bằng lệnh được cung cấp bên dưới

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
4
Chuỗi giải mã mã hóa đơn giản python

Mã chương trình để mã hóa tệp bằng trình bảo vệ mật khẩu được đề cập bên dưới -

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
5

Bạn có thể sử dụng lệnh sau để thực hiện quá trình mã hóa cùng với mật khẩu –

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
6

đầu ra

Bạn có thể quan sát đầu ra sau khi thực thi đoạn mã trên -

Chuỗi giải mã mã hóa đơn giản python

Giải trình

Mật khẩu được tạo bằng thuật toán băm MD5 và các giá trị được lưu trữ trong các tệp sao lưu an toàn đơn giản trong hệ thống Windows, bao gồm các giá trị như được hiển thị bên dưới -

Chuỗi giải mã mã hóa đơn giản python

Trong chương này, chúng ta hãy thảo luận về việc giải mã các tệp trong mật mã bằng Python. Lưu ý rằng đối với quá trình giải mã, chúng tôi sẽ làm theo quy trình tương tự, nhưng thay vì chỉ định đường dẫn đầu ra, chúng tôi sẽ tập trung vào đường dẫn đầu vào hoặc tệp cần thiết được mã hóa

Mã số

Sau đây là mã mẫu để giải mã các tệp trong mật mã bằng Python –

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
7

Bạn có thể sử dụng lệnh sau để thực thi đoạn mã trên -

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
8

đầu ra

Bạn có thể quan sát đoạn mã sau khi thực hiện lệnh hiển thị ở trên -

Chuỗi giải mã mã hóa đơn giản python

Lưu ý - Đầu ra chỉ định các giá trị băm trước khi mã hóa và sau khi giải mã, lưu ý rằng cùng một tệp được mã hóa và quá trình này đã thành công

Mã hóa Base64 chuyển đổi dữ liệu nhị phân thành định dạng văn bản, được truyền qua kênh liên lạc nơi người dùng có thể xử lý văn bản một cách an toàn. Base64 còn được gọi là Thư điện tử nâng cao quyền riêng tư (PEM) và chủ yếu được sử dụng trong quy trình mã hóa email

Python bao gồm một mô-đun có tên là BASE64 bao gồm hai chức năng chính như bên dưới -

  • cơ sở64. giải mã (đầu vào, đầu ra) - Nó giải mã tham số giá trị đầu vào được chỉ định và lưu trữ đầu ra đã giải mã dưới dạng một đối tượng

  • cơ sở64. mã hóa (đầu vào, đầu ra) - Nó mã hóa tham số giá trị đầu vào được chỉ định và lưu trữ đầu ra được giải mã dưới dạng một đối tượng

Chương trình mã hóa

Bạn có thể sử dụng đoạn mã sau để thực hiện mã hóa base64 -

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
9

đầu ra

Mã cho mã hóa base64 cung cấp cho bạn đầu ra sau -

Chuỗi giải mã mã hóa đơn giản python

Chương trình giải mã

Bạn có thể sử dụng đoạn mã sau để thực hiện giải mã base64 -

tinytuple = (123, 'john')
0

đầu ra

Mã giải mã base64 cung cấp cho bạn đầu ra sau -

Chuỗi giải mã mã hóa đơn giản python

Sự khác biệt giữa ASCII và base64

Bạn có thể quan sát những khác biệt sau khi làm việc trên ASCII và base64 để mã hóa dữ liệu -

  • Khi bạn mã hóa văn bản trong ASCII, bạn bắt đầu với một chuỗi văn bản và chuyển đổi nó thành một chuỗi byte

  • Khi bạn mã hóa dữ liệu trong Base64, bạn bắt đầu với một chuỗi byte và chuyển đổi nó thành chuỗi văn bản

Hạn chế

Thuật toán Base64 thường được sử dụng để lưu trữ mật khẩu trong cơ sở dữ liệu. Hạn chế chính là mỗi từ được giải mã có thể được mã hóa dễ dàng thông qua bất kỳ công cụ trực tuyến nào và những kẻ xâm nhập có thể dễ dàng lấy thông tin

Trong chương này, chúng ta hãy hiểu quy trình XOR cùng với mã hóa của nó trong Python

thuật toán

Thuật toán mã hóa và giải mã XOR chuyển đổi văn bản thuần túy ở định dạng byte ASCII và sử dụng thủ tục XOR để chuyển đổi nó thành một byte được chỉ định. Nó cung cấp những ưu điểm sau cho người dùng –

  • tính toán nhanh
  • Không có sự khác biệt được đánh dấu ở bên trái và bên phải
  • Dễ hiểu và dễ phân tích

Mã số

Bạn có thể sử dụng đoạn mã sau để thực hiện quy trình XOR -

tinytuple = (123, 'john')
1

đầu ra

Mã cho quy trình XOR cung cấp cho bạn đầu ra sau -

Chuỗi giải mã mã hóa đơn giản python

Giải trình

  • Hàm xor_crypt_string() bao gồm một tham số để chỉ định chế độ mã hóa và giải mã cũng như giá trị chuỗi

  • Các chức năng cơ bản được thực hiện với các mô-đun base64 tuân theo thủ tục/hoạt động XOR để mã hóa hoặc giải mã văn bản thuần túy/văn bản mật mã

Lưu ý - Mã hóa XOR được sử dụng để mã hóa dữ liệu và khó bị bẻ khóa bằng phương pháp brute-force, nghĩa là bằng cách tạo các khóa mã hóa ngẫu nhiên để khớp với văn bản mật mã chính xác

Trong khi sử dụng kỹ thuật mật mã Caesar, việc mã hóa và giải mã các ký hiệu liên quan đến việc chuyển đổi các giá trị thành số bằng một quy trình cộng hoặc trừ cơ bản đơn giản.

Nếu phép nhân được sử dụng để chuyển đổi thành văn bản mật mã, nó được gọi là tình huống bao quanh. Xem xét các chữ cái và các số liên quan sẽ được sử dụng như hình dưới đây -

Chuỗi giải mã mã hóa đơn giản python

Các số sẽ được sử dụng cho quy trình nhân và khóa liên quan là 7. Công thức cơ bản được sử dụng trong trường hợp như vậy để tạo mật mã nhân như sau -

tinytuple = (123, 'john')
2

Số được tìm nạp thông qua đầu ra được ánh xạ trong bảng được đề cập ở trên và chữ cái tương ứng được coi là chữ cái được mã hóa

Chuỗi giải mã mã hóa đơn giản python

Hàm điều chế cơ bản của mật mã nhân trong Python như sau -

tinytuple = (123, 'john')
3

Lưu ý - Ưu điểm của mật mã nhân là nó có thể hoạt động với các khóa rất lớn như 8.953.851. Sẽ mất khá nhiều thời gian để một máy tính có thể brute-force thông qua phần lớn chín triệu khóa

Mật mã Affine là sự kết hợp giữa Mật mã nhân và thuật toán Mật mã Caesar. Việc triển khai cơ bản của mật mã affine như trong hình dưới đây -

Chuỗi giải mã mã hóa đơn giản python

Trong chương này, chúng ta sẽ thực hiện mật mã affine bằng cách tạo lớp tương ứng của nó bao gồm hai chức năng cơ bản để mã hóa và giải mã

Mã số

Bạn có thể sử dụng đoạn mã sau để triển khai mật mã affine -

tinytuple = (123, 'john')
4

đầu ra

Bạn có thể quan sát đầu ra sau khi triển khai mật mã affine -

Chuỗi giải mã mã hóa đơn giản python

Đầu ra hiển thị tin nhắn được mã hóa cho tin nhắn văn bản thuần túy Mật mã Affine và tin nhắn được giải mã cho tin nhắn được gửi dưới dạng đầu vào abcdefg

Trong chương này, bạn sẽ tìm hiểu về mật mã đơn ký tự và cách hack nó bằng Python

Mật mã đơn chữ cái

Một mật mã Monoalphabetic sử dụng một thay thế cố định để mã hóa toàn bộ tin nhắn. Một mật mã dùng một bảng chữ cái sử dụng từ điển Python với các đối tượng JSON được hiển thị ở đây -

tinytuple = (123, 'john')
5

Với sự trợ giúp của từ điển này, chúng ta có thể mã hóa các chữ cái bằng các chữ cái được liên kết thành các giá trị trong đối tượng JSON. Chương trình sau tạo một chương trình đơn chữ cái dưới dạng biểu diễn lớp bao gồm tất cả các chức năng mã hóa và giải mã

tinytuple = (123, 'john')
6

Tệp này được gọi sau để thực hiện quá trình mã hóa và giải mã của mật mã Monoalphabetic được đề cập như sau -

tinytuple = (123, 'john')
7

đầu ra

Bạn có thể quan sát kết quả đầu ra sau đây khi triển khai mã ở trên -

Chuỗi giải mã mã hóa đơn giản python

Do đó, bạn có thể hack một mật mã đơn bảng chữ cái với cặp giá trị khóa được chỉ định để bẻ khóa văn bản mật mã thành văn bản thuần túy thực tế

Mật mã thay thế đơn giản là mật mã được sử dụng phổ biến nhất và bao gồm một thuật toán thay thế mọi ký tự văn bản thuần cho mọi ký tự văn bản mật mã. Trong quá trình này, các bảng chữ cái bị xáo trộn so với thuật toán mật mã Caesar

Ví dụ

Các khóa cho mật mã thay thế đơn giản thường bao gồm 26 chữ cái. Một khóa ví dụ là -

tinytuple = (123, 'john')
8

Một mã hóa ví dụ sử dụng khóa trên là−

tinytuple = (123, 'john')
9

Đoạn mã sau trình bày một chương trình để thực hiện mật mã thay thế đơn giản -

tinydict = {'name': 'omkar','code':6734, 'dept': 'sales'}
0

đầu ra

Bạn có thể quan sát kết quả đầu ra sau đây khi triển khai mã ở trên -

Chuỗi giải mã mã hóa đơn giản python

Trong chương này, chúng ta sẽ tập trung vào kiểm tra mật mã thay thế bằng các phương pháp khác nhau, giúp tạo ra các chuỗi ngẫu nhiên như dưới đây -

tinydict = {'name': 'omkar','code':6734, 'dept': 'sales'}
1

đầu ra

Bạn có thể quan sát đầu ra dưới dạng các chuỗi được tạo ngẫu nhiên giúp tạo các tin nhắn văn bản thuần túy ngẫu nhiên, như được hiển thị bên dưới -

Chuỗi giải mã mã hóa đơn giản python

Sau khi kiểm tra hoàn tất thành công, chúng ta có thể quan sát thông báo đầu ra Kiểm tra thay thế đã thông qua

Chuỗi giải mã mã hóa đơn giản python

Vì vậy, bạn có thể hack một mật mã thay thế một cách có hệ thống

Trong chương này, bạn có thể tìm hiểu về cách triển khai đơn giản của mật mã thay thế hiển thị thông báo được mã hóa và giải mã theo logic được sử dụng trong kỹ thuật mật mã thay thế đơn giản. Đây có thể được coi là một cách tiếp cận thay thế của mã hóa

Mã số

Bạn có thể sử dụng đoạn mã sau để thực hiện giải mã bằng mật mã thay thế đơn giản -

tinydict = {'name': 'omkar','code':6734, 'dept': 'sales'}
2

đầu ra

Đoạn mã trên cung cấp cho bạn đầu ra như được hiển thị ở đây -

Chuỗi giải mã mã hóa đơn giản python

Trong chương này, bạn sẽ tìm hiểu chi tiết về các mô-đun mật mã khác nhau trong Python

Mô-đun mật mã

Nó bao gồm tất cả các công thức và nguyên hàm, đồng thời cung cấp giao diện mã hóa cấp cao trong Python. Bạn có thể cài đặt mô-đun mật mã bằng lệnh sau –

pip install cryptography
Chuỗi giải mã mã hóa đơn giản python

Bạn có thể sử dụng đoạn mã sau để triển khai mô-đun mật mã -

tinydict = {'name': 'omkar','code':6734, 'dept': 'sales'}
4

đầu ra

Mã được cung cấp ở trên tạo ra đầu ra sau -

Chuỗi giải mã mã hóa đơn giản python

Mã được cung cấp ở đây được sử dụng để xác minh mật khẩu và tạo hàm băm của nó. Nó cũng bao gồm logic để xác minh mật khẩu cho mục đích xác thực

tinydict = {'name': 'omkar','code':6734, 'dept': 'sales'}
5

đầu ra

Tình huống 1 – Nếu bạn đã nhập đúng mật khẩu, bạn có thể tìm thấy kết quả sau –

Chuỗi giải mã mã hóa đơn giản python

Tình huống 2 - Nếu chúng tôi nhập sai mật khẩu, bạn có thể tìm thấy đầu ra sau -

Chuỗi giải mã mã hóa đơn giản python

Giải trình

Gói Hashlib được sử dụng để lưu trữ mật khẩu trong cơ sở dữ liệu. Trong chương trình này, muối được sử dụng để thêm một chuỗi ngẫu nhiên vào chuỗi mật khẩu trước khi thực hiện hàm băm

Mật mã Vigenere bao gồm một bước ngoặt với thuật toán Mật mã Caesar được sử dụng để mã hóa và giải mã. Mật mã Vigenere hoạt động tương tự như thuật toán Mật mã Caesar chỉ có một điểm khác biệt chính. Mật mã Caesar bao gồm thuật toán cho sự dịch chuyển một ký tự, trong khi Mật mã Vignere bao gồm khóa với sự dịch chuyển nhiều bảng chữ cái

Phương trình toán học

Đối với mã hóa, phương trình toán học như sau -

$$E_{k}\left ( M{_{i{}}} \right ) = \left ( M_{i}+K_{i} \right )\;\;\;

Để giải mã, phương trình toán học như sau -

$$D_{k}\left ( C{_{i{}}} \right ) = \left ( C_{i}-K_{i} \right )\;\;\;

Mật mã Vigenere sử dụng nhiều hơn một bộ thay thế, và do đó nó còn được gọi là mật mã đa bảng chữ cái. Vigenere Cipher sẽ sử dụng khóa chữ cái thay vì biểu diễn khóa số. Chữ A sẽ được sử dụng cho phím 0, chữ B cho phím 1, v.v. Số của các chữ cái trước và sau quá trình mã hóa được hiển thị bên dưới -

Chuỗi giải mã mã hóa đơn giản python

Sự kết hợp có thể có của số lượng khóa có thể dựa trên độ dài khóa Vignere được đưa ra như sau, cho kết quả về mức độ an toàn của Thuật toán mật mã Vignere −

Chuỗi giải mã mã hóa đơn giản python

Hoạt cảnh Vigenere

Hoạt cảnh được sử dụng cho mật mã Vignere như dưới đây -

Chuỗi giải mã mã hóa đơn giản python

Trong chương này, chúng ta hãy hiểu làm thế nào để thực hiện mật mã Vigenere. Xem xét văn bản Đây là triển khai cơ bản của Mật mã Vignere được mã hóa và khóa được sử dụng là PIZZA

Mã số

Bạn có thể sử dụng đoạn mã sau để triển khai mật mã Vignere trong Python –

tinydict = {'name': 'omkar','code':6734, 'dept': 'sales'}
6

đầu ra

Bạn có thể quan sát kết quả đầu ra sau đây khi triển khai mã ở trên -

Chuỗi giải mã mã hóa đơn giản python

Các kết hợp khả thi của việc hack mật mã Vignere là không thể. Do đó, nó được coi là một chế độ mã hóa an toàn

Mật mã bàn phím một lần là một loại mật mã Vignere bao gồm các tính năng sau -

  • Đó là một mật mã không thể phá vỡ

  • Khóa chính xác giống như độ dài của tin nhắn được mã hóa

  • Chìa khóa được tạo thành từ các ký hiệu ngẫu nhiên

  • Như tên gợi ý, khóa chỉ được sử dụng một lần và không bao giờ được sử dụng lại cho bất kỳ tin nhắn nào khác được mã hóa

Do đó, tin nhắn được mã hóa sẽ dễ bị tấn công đối với nhà phân tích mật mã. Khóa được sử dụng cho mật mã pad dùng một lần được gọi là pad, vì nó được in trên các miếng giấy

Tại sao nó không thể phá vỡ?

Chìa khóa không thể phá vỡ nhờ các tính năng sau –

  • Chìa khóa dài bằng thông điệp đã cho

  • Chìa khóa thực sự ngẫu nhiên và được tạo tự động đặc biệt

  • Khóa và văn bản thuần túy được tính theo modulo 26/10/2

  • Mỗi khóa nên được sử dụng một lần và bị hủy bởi cả người gửi và người nhận

  • Nên có hai bản sao của khóa. một với người gửi và một với người nhận

mã hóa

Để mã hóa một chữ cái, người dùng cần viết một khóa bên dưới bản rõ. Chữ cái bản rõ được đặt ở trên cùng và chữ khóa ở bên trái. Mặt cắt đạt được giữa hai chữ cái là văn bản thuần túy. Nó được mô tả trong ví dụ dưới đây -

Chuỗi giải mã mã hóa đơn giản python

giải mã

Để giải mã một chữ cái, người dùng lấy chữ cái khóa bên trái và tìm chữ cái bản mã trong hàng đó. Chữ thường được đặt ở đầu cột nơi người dùng có thể tìm thấy chữ mật mã

Python bao gồm một mô-đun triển khai hacky để triển khai mật mã một lần. Tên gói được gọi là One-Time-Pad bao gồm một công cụ mã hóa dòng lệnh sử dụng cơ chế mã hóa tương tự như thuật toán mã hóa bảng một lần

Cài đặt

Bạn có thể sử dụng lệnh sau để cài đặt mô-đun này -

tinydict = {'name': 'omkar','code':6734, 'dept': 'sales'}
7

Nếu bạn muốn sử dụng nó từ dòng lệnh, hãy chạy lệnh sau -

______3_______8
Chuỗi giải mã mã hóa đơn giản python

Đoạn mã sau giúp tạo mật mã bảng một lần -

tinydict = {'name': 'omkar','code':6734, 'dept': 'sales'}
9

đầu ra

Bạn có thể quan sát đầu ra sau khi chạy đoạn mã trên -

Chuỗi giải mã mã hóa đơn giản python

Lưu ý - Tin nhắn được mã hóa rất dễ bị bẻ khóa nếu độ dài của khóa nhỏ hơn độ dài của tin nhắn (văn bản thuần túy)

Trong mọi trường hợp, khóa không nhất thiết phải là ngẫu nhiên, điều này làm cho mật mã bàn phím một lần trở thành một công cụ đáng giá

Trong chương này, chúng ta hãy thảo luận chi tiết về mật mã đối xứng và bất đối xứng

Mật mã đối xứng

Trong loại này, quá trình mã hóa và giải mã sử dụng cùng một khóa. Nó còn được gọi là mật mã khóa bí mật. Các tính năng chính của mật mã đối xứng như sau -

  • Nó đơn giản hơn và nhanh hơn
  • Hai bên trao đổi chìa khóa một cách an toàn

Hạn chế

Hạn chế chính của mật mã đối xứng là nếu khóa bị rò rỉ cho kẻ xâm nhập, thông điệp có thể dễ dàng thay đổi và đây được coi là một yếu tố rủi ro

Tiêu chuẩn mã hóa dữ liệu (DES)

Thuật toán khóa đối xứng phổ biến nhất là Tiêu chuẩn mã hóa dữ liệu (DES) và Python bao gồm một gói bao gồm logic đằng sau thuật toán DES

Cài đặt

Lệnh cài đặt gói DES pyDES trong Python là -

pip install cryptography
0
Chuỗi giải mã mã hóa đơn giản python

Việc triển khai chương trình đơn giản của thuật toán DES như sau −

pip install cryptography
1

Nó yêu cầu biến padmode tìm nạp tất cả các gói theo triển khai thuật toán DES và tuân theo quá trình mã hóa và giải mã theo một cách được chỉ định

đầu ra

Bạn có thể thấy đầu ra sau đây là kết quả của đoạn mã được cung cấp ở trên -

Chuỗi giải mã mã hóa đơn giản python

Mật mã bất đối xứng

Nó còn được gọi là mật mã khóa công khai. Nó hoạt động theo cách ngược lại của mật mã đối xứng. Điều này ngụ ý rằng nó yêu cầu hai khóa. một để mã hóa và một để giải mã. Khóa công khai được sử dụng để mã hóa và khóa riêng được sử dụng để giải mã

Hạn chế

  • Do độ dài khóa của nó, nó góp phần làm giảm tốc độ mã hóa
  • Quản lý khóa là rất quan trọng

Mã chương trình sau bằng Python minh họa hoạt động của mật mã bất đối xứng bằng thuật toán RSA và cách triển khai thuật toán này –

pip install cryptography
2

đầu ra

Bạn có thể tìm thấy đầu ra sau khi thực thi mã được cung cấp ở trên -

Chuỗi giải mã mã hóa đơn giản python

Thuật toán RSA là một kỹ thuật mã hóa khóa công khai và được coi là cách mã hóa an toàn nhất. Nó được phát minh bởi Rivest, Shamir và Adleman vào năm 1978 và do đó đặt tên là thuật toán RSA

thuật toán

Thuật toán RSA giữ các tính năng sau -

  • Thuật toán RSA là một phép lũy thừa phổ biến trong trường hữu hạn trên các số nguyên kể cả số nguyên tố

  • Các số nguyên được sử dụng bởi phương pháp này đủ lớn nên khó giải

  • Có hai bộ khóa trong thuật toán này. khóa riêng và khóa chung

Bạn sẽ phải thực hiện các bước sau để làm việc với thuật toán RSA –

Bước 1. Tạo mô-đun RSA

Quy trình ban đầu bắt đầu bằng việc chọn hai số nguyên tố là p và q, sau đó tính tích N của chúng, như được hiển thị -

pip install cryptography
3

Ở đây, đặt N là số lớn được chỉ định

Bước 2. Số dẫn xuất (e)

Coi số e là số dẫn xuất phải lớn hơn 1 và nhỏ hơn (p-1) và (q-1). Điều kiện chính sẽ là không có ước chung của (p-1) và (q-1) ngoại trừ 1

Bước 3. Khóa công khai

Cặp số n và e được chỉ định tạo thành khóa công khai RSA và nó được công khai

Bước 4. Khóa riêng

Khóa riêng d được tính từ các số p, q và e. Mối quan hệ toán học giữa các số như sau -

pip install cryptography
4

Công thức trên là công thức cơ bản cho Thuật toán Euclide mở rộng, lấy p và q làm tham số đầu vào

Công thức mã hóa

Hãy xem xét một người gửi gửi tin nhắn văn bản thuần túy cho ai đó có khóa công khai là (n,e). Để mã hóa tin nhắn văn bản thuần túy trong tình huống đã cho, hãy sử dụng cú pháp sau -

pip install cryptography
5

Công thức giải mã

Quá trình giải mã rất đơn giản và bao gồm các phân tích để tính toán theo cách tiếp cận có hệ thống. Xem xét người nhận C có khóa riêng d, mô-đun kết quả sẽ được tính là -

pip install cryptography
6

Trong chương này, chúng ta sẽ tập trung vào từng bước triển khai thuật toán RSA bằng Python

Tạo khóa RSA

Các bước sau đây liên quan đến việc tạo khóa RSA -

  • Tạo hai số nguyên tố lớn là p và q. Tích của những số này sẽ được gọi là n, trong đó n= p*q

  • Tạo một số ngẫu nhiên nguyên tố cùng nhau với (p-1) và (q-1). Gọi số đó là e

  • Tính nghịch đảo mô-đun của e. Nghịch đảo tính toán sẽ được gọi là d

Các thuật toán tạo khóa RSA

Chúng tôi cần hai thuật toán chính để tạo khóa RSA bằng mô-đun Python − Cryptomath và mô-đun Rabin Miller

Mô-đun mật mã

Mã nguồn của mô-đun mật mã tuân theo tất cả triển khai cơ bản của thuật toán RSA như sau:

pip install cryptography
7

Mô-đun RabinMiller

Mã nguồn của mô-đun RabinMiller tuân theo tất cả triển khai cơ bản của thuật toán RSA như sau:

pip install cryptography
8

Mã hoàn chỉnh để tạo khóa RSA như sau -

pip install cryptography
9

đầu ra

Khóa chung và khóa riêng được tạo và lưu trong các tệp tương ứng như được hiển thị trong đầu ra sau

Chuỗi giải mã mã hóa đơn giản python

Trong chương này, chúng ta sẽ tập trung vào việc triển khai mã hóa mật mã RSA khác nhau và các chức năng liên quan cho cùng một mã hóa. Bạn có thể tham khảo hoặc đưa vào file python này để thực hiện triển khai thuật toán mật mã RSA

Các mô-đun được bao gồm cho thuật toán mã hóa như sau -

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)
0

Chúng tôi đã khởi tạo giá trị băm là SHA-256 nhằm mục đích bảo mật tốt hơn. Chúng tôi sẽ sử dụng một chức năng để tạo khóa mới hoặc một cặp khóa chung và khóa riêng bằng mã sau

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)
1

Để mã hóa, hàm sau được sử dụng tuân theo thuật toán RSA -

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)
2

Hai tham số là bắt buộc. tin nhắn và pub_key đề cập đến khóa Công khai. Khóa công khai được sử dụng để mã hóa và khóa riêng được sử dụng để giải mã

Chương trình hoàn chỉnh cho quy trình mã hóa được đề cập bên dưới -

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)
3

Chương này là phần tiếp theo của chương trước, nơi chúng ta đã theo dõi từng bước triển khai mã hóa khôn ngoan bằng thuật toán RSA và thảo luận chi tiết về nó

Hàm được sử dụng để giải mã văn bản mật mã như sau -

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)
4

Đối với mật mã khóa công khai hoặc mật mã khóa bất đối xứng, điều quan trọng là phải duy trì hai tính năng quan trọng là Xác thực và Ủy quyền

ủy quyền

Ủy quyền là quá trình xác nhận rằng người gửi là người duy nhất đã truyền thông điệp. Đoạn mã sau giải thích điều này -

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)
5

xác thực

Có thể xác thực bằng phương pháp xác minh được giải thích như bên dưới -

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)
6

Chữ ký điện tử được xác minh cùng với các chi tiết của người gửi và người nhận. Điều này bổ sung thêm tuổi cân nặng cho mục đích bảo mật

Giải mã mật mã RSA

Bạn có thể sử dụng đoạn mã sau để giải mã mật mã RSA −

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)
7

Có thể hack mật mã RSA với các số nguyên tố nhỏ, nhưng được coi là không thể nếu nó được sử dụng với các số lớn. Những lý do chỉ rõ lý do tại sao rất khó để hack mật mã RSA như sau –

  • Tấn công vũ phu sẽ không hoạt động vì có quá nhiều khóa có thể thực hiện được. Ngoài ra, điều này tiêu tốn rất nhiều thời gian

  • Tấn công từ điển sẽ không hoạt động trong thuật toán RSA vì các khóa là số và không bao gồm bất kỳ ký tự nào trong đó

  • Phân tích tần số của các ký tự rất khó theo dõi vì một khối được mã hóa duy nhất đại diện cho các ký tự khác nhau

  • Không có thủ thuật toán học cụ thể nào để hack mật mã RSA

Phương trình giải mã RSA là -

message = 'This is program to explain reverse cipher.'
translated = '' #cipher text is stored in this variable
i = len(message) - 1

while i >= 0:
   translated = translated + message[i]
   i = i - 1
print(“The cipher text is : “, translated)
8

Với sự trợ giúp của các số nguyên tố nhỏ, chúng ta có thể thử hack mật mã RSA và mã mẫu cho điều tương tự được đề cập bên dưới -

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.

Làm cách nào để sử dụng RSA trong Python?

Triển khai thuật toán RSA trong Python .
def tạoKeys(). (Khóa công khai, Khóa riêng) = rsa. .
def loadKeys(). với open('keys/publicKey. pem', 'rb') dưới dạng p. khóa công khai = rsa. .
mã hóa def (tin nhắn, khóa). trả lại rsa. .
giải mã def (bản mã, khóa). thử. trả lại rsa. .
dấu hiệu def (tin nhắn, khóa). trả lại rsa

Thuật toán cơ bản nào được sử dụng trong Python để mã hóa?

Triển khai RSA với python . Dữ liệu được mã hóa bằng khóa chung và được giải mã bằng khóa riêng. RSA algorithm is used to perform encryption and decryption. The data is encrypted using the public key and decrypted using the private.

Làm thế nào để giải mã fernet?

Cách mã hóa và giải mã dữ liệu trong Python .
từ mật mã. dương xỉ nhập khẩu dương xỉ
phím = Fernet. generate_key() f = Fernet(key)
in (encrypted_data)
in (decrypted_data. giải mã())
từ mật mã. nhập khẩu fernet Khóa Fernet = Fernet. generate_key() print("Khóa. ", chìa khóa. giải mã ()) f = Fernet (khóa) mã hóa_data = f