NL Stego

NL Stego is a system for text generation and text-based steganography. It combines Markov Models of several orders to generate random text resembling a given training text (or text corpus). It can also embed secret messages into pseudo-random generated text.

Christian Siefkes <>

Download and Installation

For easy installation, we provide a JAR file that is self-contained; you only need Java (JDK 5.0 or higher) and the JAR file, there are no further dependencies.

Download the JAR file and store it in a place of your choice.

The JAR file can directly executed by Java by calling

    java -Xmx400M -jar PATH-TO-JAR/nlstego.jar

The Xmx option increases amount of memory available for the system to 400 MB to avoid problems with large text models. On Windows you need to use '\' instead of '/'.

For convenient invocation you can define an alias for the above command (at least on Unix).


Building the System

Apache Ant is required to build the software. To build the documentation, you need to have txt2html in your path.

To rebuild the whole system including documentation, run ant in the current directory. Call ant -projecthelp for a list of other build options.

Bug Reports

Bug reports go to But before you post make sure you've tested against the latest published version. Maybe your bug has already been fixed. If it hasn't been fixed in the latest version, then when posting be sure to say which code version you tested against. Also be sure to include enough information to reproduce the bug and full exception stack traces.


A further dependency is only required for building the system, not for running it:

All dependencies are contained in the lib directory.

To Do / Possible Extensions

[Last generated: 2023-08-25] Valid XHTML 1.0 Transitional