Criptografia AES de Texto
Criptografe e descriptografe texto com AES-256-GCM usando SubtleCrypto no seu navegador.
Uses AES-256-GCM with PBKDF2 key derivation. Encrypted output is base64-encoded.
Perguntas Frequentes
Implementação de Código
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
import base64
# AES-256-CBC Encryption
key = get_random_bytes(32) # 256-bit key
iv = get_random_bytes(16) # 128-bit IV
def encrypt(plaintext: str, key: bytes, iv: bytes) -> str:
cipher = AES.new(key, AES.MODE_CBC, iv)
ct_bytes = cipher.encrypt(pad(plaintext.encode(), AES.block_size))
return base64.b64encode(iv + ct_bytes).decode()
def decrypt(ciphertext: str, key: bytes) -> str:
raw = base64.b64decode(ciphertext)
iv = raw[:16]
cipher = AES.new(key, AES.MODE_CBC, iv)
return unpad(cipher.decrypt(raw[16:]), AES.block_size).decode()
encrypted = encrypt("Hello, World!", key, iv)
print("Encrypted:", encrypted)
print("Decrypted:", decrypt(encrypted, key))
# AES-256-GCM (authenticated encryption)
def encrypt_gcm(plaintext: str, key: bytes) -> dict:
cipher = AES.new(key, AES.MODE_GCM)
ct, tag = cipher.encrypt_and_digest(plaintext.encode())
return {
"nonce": base64.b64encode(cipher.nonce).decode(),
"tag": base64.b64encode(tag).decode(),
"ct": base64.b64encode(ct).decode(),
}Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.