> For the complete documentation index, see [llms.txt](https://docs.syntho.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.syntho.ai/configure-a-data-generation-job/configure-column-settings/mask/text.md).

# Text

Below is a list of available text mask functions.

## **Format preserving encryption (FPE)**

The **Format preserving encryption (FPE)** function utilizes the FF3 algorithm to encrypt sensitive data while preserving its original format and length. This makes it ideal for fields where the data's structure must remain intact (e.g., credit card numbers or dates). Note that it preserves data format during encryption and supports unique and randomized subsets for varied datasets​. The values are generated in a consistent manner.

#### **Parameters**

* `Alphabet` : By default, it contains all ASCII letters, uppercase and lowercase and numbers.

#### **Example** <a href="#example---shifting-a-set-of-dates" id="example---shifting-a-set-of-dates"></a>

If you configure:

```
Alphabet: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789
```

The results will be:

```
0kVRnFWud,
uCgInrq6,
772edmb G,
...
```

<figure><img src="/files/Z9o0jfDb54OUHlFlMyjc" alt=""><figcaption></figcaption></figure>

## **Numeric hasher**

The **Numeric hasher** function provides secure hashing for categorical values. This method replaces original values with a hashed representation, ideal for ensuring data privacy while maintaining referential integrity in numerical datasets. Note that It maintains the original structure of hashed fields. and the minimum number of characters depends on the size of the alphabet used, typically resulting in a minimum of 4 characters in a consistent manner. To ensure accurate ordering, please see [ordering and indexing considerations](/configure-a-data-generation-job/configure-column-settings/consistent-mapping.md#ordering-and-indexing-considerations).

#### Parameters

* No parameters.

#### Example <a href="#example---shifting-a-set-of-dates" id="example---shifting-a-set-of-dates"></a>

If you configure:

```
Column names:
Anne,
John,
Chris,
...
```

The results will be:

```
Column names:
3842648596,
3397993411,
70461273,
...
```

<figure><img src="/files/aZLZ41Rf7njTa15Vo1OT" alt=""><figcaption></figcaption></figure>

## **Random character swap**

The **Random character swap** function replaces individual characters in categorical values while preserving the structure of punctuation, spaces, and symbols. Characters are swapped within their respective categories (letters with letters, digits with digits), ensuring that the field's overall format remains usable, or in other words, the original data type and structure of each field (letters, numbers, symbols) are preserved. Note that it preserves non-alphabetic characters (e.g., punctuation, spaces)​.

#### **Parameters**

* `Consistent mapping`: Random character swap supports [consistent mapping](/configure-a-data-generation-job/configure-column-settings/consistent-mapping.md). When enabled, each input character is always mapped to the same output character. The mapping is case-preserving: if a lowercase character is mapped to another lowercase character, the corresponding uppercase character is mapped to the uppercase version of that same output character. For example, if `a` is mapped to `z`, then `A` is mapped to `Z`.

#### **Example** <a href="#example---shifting-a-set-of-dates" id="example---shifting-a-set-of-dates"></a>

If you configure:

```
Column names:
Mavis612,
Frank378,
Tijuana228,
...
```

The results will be:

```
Column names:
Eiqxj928,
Wawak904,
Rqrsuzb283,
...
```

<figure><img src="/files/IUGHWVhcevezQ9frG38O" alt="" width="529"><figcaption><p>Consistent mapping enabled for Random character swap</p></figcaption></figure>

## **Shuffle**

The **Shuffle** function shuffles existing text values while preserving the overall frequency of values.

Shuffle works batch-wise. Each generated batch is shuffled independently, based on the configured **Batch size**.

`NULL` values are treated as a distinct value and are shuffled like any other value.

#### **Parameters**

* `Rare Category Protection`: Enables protection for infrequent values during shuffling. Configure its threshold and replacement value.

<figure><img src="/files/dVDarVPpTCOvdcVXBxWq" alt=""><figcaption></figcaption></figure>

## **Rare category protection**

The **Rare category protection** generator replaces infrequent text values with a user-defined replacement value.

Use this standalone Mask generator when you need to protect rare values without shuffling the column. You can also enable it as a parameter of **Shuffle**.

#### **Parameters**

* `Rare category protection threshold`: Values occurring at or below this frequency are replaced. The default is `10`.
* `Rare category replacement value`: The value that replaces rare values. The default is `*`.

{% hint style="warning" %}
Rare category protection works per generated batch. A smaller **Batch size** makes values more likely to meet the threshold.
{% endhint %}

<figure><img src="/files/CHNWfqFcYgBiJKfeQpde" alt=""><figcaption></figcaption></figure>

## **Free text PII obfuscation**

{% hint style="warning" %}
**Caution**: this feature can slow down your data generation jobs significantly.
{% endhint %}

The **Free text PII obfuscation** function detects and obfuscates PII in columns containing free text information.

Select the correct **Locale** to ensure Syntho uses the right language models for detection.

If **Replace PII with mock data** is enabled, detected entities are replaced with mock values. If it is disabled, detected entities are annotated with a PII label.

For setup details, see [Free text PII obfuscation](/configure-a-data-generation-job/configure-column-settings/duplicate/automatic-pii-discovery-and-de-identification-in-free-text-columns.md). For supported entities, see [Supported PII entities](/configure-a-data-generation-job/manage-personally-identifiable-information-pii/supported-pii-entities.md).

#### **Parameters**

* `Locale`
* `Replace PII with mock data`

<figure><img src="/files/5zHih4fKoWdmFMNxo6Z2" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.syntho.ai/configure-a-data-generation-job/configure-column-settings/mask/text.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
