🛠️ToolsShed

AES-Textverschlüsselung

Text mit AES-256-GCM direkt im Browser via SubtleCrypto verschlüsseln und entschlüsseln.

Uses AES-256-GCM with PBKDF2 key derivation. Encrypted output is base64-encoded.

Häufig gestellte Fragen

Code-Implementierung

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.