Textfuscator

Textfuscator is a tool to merge text strings together into a single output, given a pair of "keys" and "inputs". Each input can be decoded from output from a key.


Encoder

Obfuscation mode:

Compressed:

Advanced Options

Maximum Memory Size (Bytes):

Output:

Decoder

Advanced Options

Maximum Memory Size (Bytes):

Skip version checking?

Output:


Information

What is Textfuscator?

Textfuscator is a text "obfuscation" tool that allows users to encode multiple text strings into a single output.

Each string can be retrieved using its corresponding key, making it useful for scenarios where sensitive information needs to be stored or transmitted securely.

Textfuscator currently supports XOR and AES-GCM (with PBKDF2 key derivation), and offers compression to optimize the size of the encoded output.

Which mode should I use?

The choice of mode depends on your specific needs:

  • XOR: Uses XOR bitwise operator for obfuscation. Best for fast encode/decode speed, small size, and non-secret messages. Not recommended for sensitive content.
  • AES-GCM: Uses the AES algorithm with GCM for obfuscation. Best for protecting sensitive data when a secure random key is already available. Slower and larger than XOR.
  • AES-GCM (PBKDF2): Uses the AES algorithm with GCM deriving the key using PBKDF2 for obfuscation. Best for password-based encryption, where users provide a passphrase and a strong key must be derived securely before encryption. Larger than AES-GCM.

Consider the sensitivity of your data and performance requirements when choosing a mode.

(!) The supported algorithms are subject to change in another update!
What version of Textfuscator is running?

The file version Textfuscator is running on is 1.0.

Textfuscator is STILL in development. Things are subject to change. Textfuscator is focused on forward-compatibilty, backwards-compatibility works but there may be errors in decoding.

Is Textfuscator really for encrpytion?

Textfuscator is primarily an obfuscation tool, with optional real encryption depending on the mode used.

However, Textfuscator should NOT be used for storing highly sensitive text, such as nuclear launch codes.

How effective is compression?

Textfuscator uses GZIP for compression.

Compression is most effective for large, repetitive, or human-readable text (such as really long messages). In these cases, the final output size can be significantly reduced.

For small or already compact inputs, compression may be ineffective. Because GZIP adds its own headers and metadata, compressing small inputs can increase the final output size.

Compression is always applied before encryption. Encrypted data cannot be meaningfully compressed.

Why do I get a notification in Firefox about maximum memory usage?

When instantiating a resizable ArrayBuffer then resizing it:

  • Chromium: It resizes up to the specified newLength parameter. This is normal behavior.
  • Firefox: It resizes up to the specified maxResizeLength, which can result in high memory usage depending on maxResizeLength. This allocates significantly more memory than required.
But why does maximum memory usage matter?

Textfuscator may process multiple inputs at once, applying compression and encryption on a per-block basis. During this process, intermediate data (such as obfuscated data and metadata) must be held in memory.

Higher memory usage can become a problem on systems with limited RAM or when processing very large inputs. Excessive memory usage may lead to slower performance, errors in encoding/decoding, or even browser crashes.

Textfuscator outputs Base64. What are the contents of it when decoded?

See (link) here for Textfuscator's binary block structure.

How come Textfuscator already knows about the obfuscation mode and compression state when decoding?

Textfuscator stores the block information and data on encoding, which includes the obfuscation mode and compression state.

See (link) here for Textfuscator's binary block structure for more technical information.