Төменде осы Python тілінде PyCryptodome кітапханасын қолданып, текстті AES-256 симметриялық шифрымен текстті шифрлайтын және дешифрлайтын программа көрсетілген:
Ол үшін алдымен кітапхананың өзін орнатамыз:
Pip install pycryptodomex
Одан кейін кодтың өзі орындалады. Программада PyCryptodome кітапханасын қолдану арқылы AES 256 биттік алгоритмін шифрлау және дешифрлау көрсетілген (13 сурет).
from Crypto.Cipher import AES
import time
import binascii, os
t0 = time.time()
def encrypt_AES_GCM(msg, secretKey):
aesCipher = AES.new(secretKey, AES.MODE_GCM)
ciphertext, authTag = aesCipher.encrypt_and_digest(msg)
return (ciphertext, aesCipher.nonce, authTag)
def decrypt_AES_GCM(encryptedMsg, secretKey):
(ciphertext, nonce, authTag) = encryptedMsg
aesCipher = AES.new(secretKey, AES.MODE_GCM, nonce)
plaintext = aesCipher.decrypt_and_verify(ciphertext, authTag)
return plaintext
secretKey = os.urandom(32)
print("Shifrlau kilti:", binascii.hexlify(secretKey))
msg = b'Bul habarlama AES-256-GCM algoritmimen shifrlandy'
encryptedMsg = encrypt_AES_GCM(msg, secretKey)
print("Shifrlengen habarlama", {
'shifrtext': binascii.hexlify(encryptedMsg[0]),
'aesIV': binascii.hexlify(encryptedMsg[1]),
'MAC': binascii.hexlify(encryptedMsg[2])
})
decryptedMsg = decrypt_AES_GCM(encryptedMsg, secretKey)
t1 = time.time()
total = t1 = t0
print("Deshifrlengen habarlama", decryptedMsg)
print("Uakit = ", total)
Достарыңызбен бөлісу: |