# Substitute

A substitution cipher allowing you to specify bytes to replace with other byte values. This can be used to create Caesar ciphers but is more powerful as any byte value can be substituted, not just letters, and the substitution values need not be in order. Enter the bytes you want to replace in the Plaintext field and the bytes to replace them with in the Ciphertext field. Substitute lives in the **Cryptography** category of the `fx` menu.

## Parameters

| Parameter  | Type   | Required | Default                      | Description                                            |
| ---------- | ------ | -------- | ---------------------------- | ------------------------------------------------------ |
| Input      | string | yes      | —                            | Value to transform. Previous step output or a literal. |
| Plaintext  | string | no       | `ABCDEFGHIJKLMNOPQRSTUVWXYZ` | Argument value for this operation.                     |
| Ciphertext | string | no       | `XYZABCDEFGHIJKLMNOPQRSTUVW` | Argument value for this operation.                     |

`Input` is the primary value (previous step output or a literal).

## Returned value

| Type     | Description                              |
| -------- | ---------------------------------------- |
| `string` | Result of the Substitute transformation. |

## Example

<details>
<summary>Run Substitute</summary>

A substitution cipher allowing you to specify bytes to replace with other byte values. Adjust optional parameters when the defaults do not match your payload.

1. Set **Input** to the value to transform (previous step output or a literal).

2. Review **Plaintext**, **Ciphertext** and keep defaults unless your format requires otherwise.

3. Confirm **Output value** shows the transformed result.

</details>
