A criptografia AES (Advanced Encryption Standard) é uma técnica popular para proteger informações sensíveis. No Python, você pode usar a biblioteca cryptography para realizar operações de criptografia AES. Certifique-se de instalá-la primeiro.
Aqui está um exemplo de como realizar criptografia e descriptografia AES usando a biblioteca cryptography:
pip install cryptography
Aqui está um exemplo de como realizar criptografia e descriptografia AES usando a biblioteca cryptography:
A segurança em criptografia é uma área complexa, e é importante entender as melhores práticas e considerações ao implementar soluções de segurança. Certifique-se de usar chaves seguras e manter seus sistemas atualizados com as práticas de segurança mais recentes.from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import padding from base64 import urlsafe_b64encode, urlsafe_b64decode def encrypt_aes(key, plaintext): # Converte a chave para o formato correto (32 bytes para AES-256) key = key.ljust(32)[:32].encode('utf-8') # Gera um vetor de inicialização (IV) aleatório iv = os.urandom(16) # Cria um objeto de cifra usando AES em modo CBC cipher = Cipher(algorithms.AES(key), modes.CFB(iv), backend=default_backend()) # Adiciona padding ao texto plano padder = padding.PKCS7(algorithms.AES.block_size).padder() padded_data = padder.update(plaintext.encode('utf-8')) + padder.finalize() # Cifra o texto plano encryptor = cipher.encryptor() ciphertext = encryptor.update(padded_data) + encryptor.finalize() # Combina o IV e o texto cifrado e codifica para Base64 result = urlsafe_b64encode(iv + ciphertext).decode('utf-8') return result def decrypt_aes(key, ciphertext): # Converte a chave para o formato correto (32 bytes para AES-256) key = key.ljust(32)[:32].encode('utf-8') # Decodifica o texto cifrado da Base64 decoded_data = urlsafe_b64decode(ciphertext) # Extrai o IV iv = decoded_data[:16] # Cria um objeto de cifra usando AES em modo CBC cipher = Cipher(algorithms.AES(key), modes.CFB(iv), backend=default_backend()) # Decifra o texto cifrado decryptor = cipher.decryptor() decrypted_data = decryptor.update(decoded_data[16:]) + decryptor.finalize() # Remove o padding unpadder = padding.PKCS7(algorithms.AES.block_size).unpadder() plaintext = unpadder.update(decrypted_data) + unpadder.finalize() return plaintext.decode('utf-8') # Exemplo de uso chave = "chave_secreta" texto_para_cifrar = "Texto secreto para cifrar!" # Criptografa o texto texto_cifrado = encrypt_aes(chave, texto_para_cifrar) print(f'Texto cifrado: {texto_cifrado}') # Descriptografa o texto texto_decifrado = decrypt_aes(chave, texto_cifrado) print(f'Texto decifrado: {texto_decifrado}')
Comentários
Postar um comentário