innocence-java
Replace text with POS equivalent text, in a reversible fashion.
...The project contains code to test input sentences for inclusion of words in the current vocabulary, and can create entries for new words as needed.
The vocabulary has a "MD-5 hash" value to make sure that the share vocabulary file is identical for both sender and receiver.
The software also contains a "bad-words" list of words that should never be generated in the text to be sent.