{
  "slug": "aes-cipher",
  "name": "gizza-ai/aes-cipher",
  "version": "0.1.0",
  "title": "AES Cipher — Encrypt/decrypt with AES (CBC/CTR/GCM/ECB) — gizza.ai",
  "description": "Encrypt or decrypt text with AES in CBC, CTR, GCM or ECB mode and 128/192/256-bit keys, with hex/base64 I/O — in your browser. Nothing is uploaded.",
  "tags": [
    "aes",
    "aes encrypt",
    "aes decrypt",
    "cbc",
    "ctr",
    "gcm",
    "cipher"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/aes-cipher/",
    "markdown": "https://gizza.ai/tools/aes-cipher/index.md",
    "descriptor": "https://gizza.ai/tools/aes-cipher/tool.json",
    "deep_link_example": "https://gizza.ai/tools/aes-cipher/?data=Text%20to%20encrypt%E2%80%A6&operation=encrypt&cipher=gcm&key=base64%20or%20hex%20key&iv=base64%20or%20hex%20iv&format=base64"
  },
  "cli": "gizza tool aes-cipher \"Text to encrypt…\" 'key=base64 or hex key'",
  "tool": {
    "description": "Encrypt or decrypt text with AES using a raw key you provide. cipher = gcm (default, authenticated), cbc, ctr, or ecb; the key length selects AES-128/192/256 (16/24/32 bytes). key, iv and ciphertext are hex or base64 (set format; default base64); the plaintext is UTF-8. For gcm the 16-byte tag is appended to the ciphertext. cbc/ctr need a 16-byte iv, gcm a 12-byte nonce, ecb none. This is a low-level tool — for passphrase encryption with a safe random salt+nonce use text-encrypt instead.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "cipher": {
          "default": "gcm",
          "description": "AES mode of operation: gcm (default, authenticated), cbc, ctr, or ecb (insecure — avoid).",
          "enum": [
            "cbc",
            "ctr",
            "gcm",
            "ecb"
          ],
          "type": "string"
        },
        "data": {
          "description": "For encrypt: the plaintext. For decrypt: the ciphertext, encoded with `format`.",
          "type": "string"
        },
        "format": {
          "default": "base64",
          "description": "Encoding for the key, iv, and ciphertext (base64 default, or hex). The plaintext is always UTF-8 text.",
          "enum": [
            "base64",
            "hex"
          ],
          "type": "string"
        },
        "iv": {
          "description": "The IV/nonce, encoded with `format`. Required for cbc/ctr (16 bytes) and gcm (12 bytes); omit for ecb.",
          "type": "string"
        },
        "key": {
          "description": "The AES key, encoded with `format`. Its length sets the strength: 16 bytes = AES-128, 24 = AES-192, 32 = AES-256.",
          "type": "string"
        },
        "operation": {
          "default": "encrypt",
          "description": "encrypt (default) or decrypt.",
          "enum": [
            "encrypt",
            "decrypt"
          ],
          "type": "string"
        }
      },
      "required": [
        "data",
        "key"
      ],
      "type": "object"
    }
  }
}