This is a simple library for encoding an obfuscated message within a document of text generated from Markov chains. Symmetric encoding/decoding relies on a shared passphrase.
Encode a message with the command below. Text is generated using a naive Markov chain weighted with word frequencies from your training data. Therefore, using a dump of your own conversations will produce text that is more likely to look like your own text. You can also experiment with stylized encodings using esoteric or nonconventional writing, such as the examples below trained on Ulysses, a terrible novel by James Joyce.
$ ruby encode.rb "The remote is under the left-most couch cushion."
Your decoding key is "visibly".
Message: I propose, our hero eventually suggested after mature reflection vanitys the stands, was terribly
down on though not for the reason they thought they ijsselmeer remote with pain, feeling on spuming is if
throws her boot at bloom. Of a gross inescapably under a limp black jawbreakers about the incarnation he
never can explain a thing simply bookworms the and lavatory, the hobbyhorses at the mirus bazaar! The
backbone of our empire. Leroys left-most poster upon it's yearned couch antiquity mentions that stagyrite
is a physical wreck from cobbler's weak chest. Ratio of 16 cushion. The world was coming.
This will produce two things:
- A message that includes your encoded message, and
- A decoding key to share with your recipient
Decoding a message is easy as long as you have the decoding key. You can decode a message with the command below.
$ ruby decode.rb "visibly" "I propose, our hero eventually suggested after mature reflection vanitys the
stands, was terribly down on though not for the reason they thought they ijsselmeer remote with pain,
feeling on spuming is if throws her boot at bloom. Of a gross inescapably under a limp black jawbreakers
about the incarnation he never can explain a thing simply bookworms the and lavatory, the hobbyhorses at
the mirus bazaar! The backbone of our empire. Leroys left-most poster upon it's yearned couch antiquity
mentions that stagyrite is a physical wreck from cobbler's weak chest. Ratio of 16 cushion. The world
was coming."
Message: The remote is under the left-most couch cushion.