{
  "slug": "ciphersaber2",
  "name": "gizza-ai/ciphersaber2",
  "version": "0.1.0",
  "title": "CipherSaber-2 — Encrypt/decrypt with CipherSaber (RC4 + random IV) — gizza.ai",
  "description": "Encrypt and decrypt CipherSaber-2 (RC4 with a 10-byte IV and repeated key setup) in your browser — hex or base64 output. Free, private, nothing uploaded.",
  "tags": [
    "ciphersaber",
    "ciphersaber-2",
    "ciphersaber2",
    "rc4",
    "arcfour",
    "stream cipher",
    "cipher",
    "encrypt",
    "decrypt"
  ],
  "category": "security",
  "urls": {
    "page": "https://gizza.ai/tools/ciphersaber2/",
    "markdown": "https://gizza.ai/tools/ciphersaber2/index.md",
    "descriptor": "https://gizza.ai/tools/ciphersaber2/tool.json",
    "deep_link_example": "https://gizza.ai/tools/ciphersaber2/?data=Text%20to%20encrypt%E2%80%A6&operation=encrypt&key=passphrase%2C%20or%20encoded%20key&key_format=text&rounds=20&iv=blank%20%3D%20random%20IV&format=hex"
  },
  "cli": "gizza tool ciphersaber2 \"Text to encrypt…\" 'key=passphrase, or encoded key'",
  "tool": {
    "description": "Encrypt or decrypt data with CipherSaber-2, a minimalist symmetric cipher built on RC4. Each message uses a session key = your key + a fresh random 10-byte IV (prepended to the ciphertext), and CipherSaber-2 repeats RC4's key-scheduling loop `rounds` times (spec recommends 20). operation = encrypt (default) or decrypt. key is a passphrase (key_format=text, default) or decoded bytes (key_format=encoded). On encrypt a random IV is generated unless an explicit 10-byte iv is given. rounds must match on both sides. format = hex (default) or base64. WARNING: RC4 is cryptographically broken — interop/CTF/learning use only.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "type": "string"
        },
        "format": {
          "default": "hex",
          "enum": [
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "iv": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "key_format": {
          "default": "text",
          "enum": [
            "text",
            "encoded"
          ],
          "type": "string"
        },
        "operation": {
          "default": "encrypt",
          "enum": [
            "encrypt",
            "decrypt"
          ],
          "type": "string"
        },
        "rounds": {
          "default": 20,
          "minimum": 1,
          "type": "integer"
        }
      },
      "required": [
        "data",
        "key"
      ],
      "type": "object"
    }
  }
}