. Click here for Public PGP key.
Contact: mailhead [at] unchartedcharters.com

MessageBlur - make messages unfriendly for optical character recognition

    What is MessageBlur? 
    MessageBlur takes a text from a text area and 
    turns it into an image. It then paints random colored lines over the text. 
    Colored circles are added at the same time.
    This makes it hard or impossible for optical character recognition to figure out
    what a user wrote.
    Once a desired level of obscurity has been reached, the user can save the image
    as a file and transfer is like any other file.
	What's new:
	This is a full re-write of the original utility to improve perfomance and
	simplify the javascript.
	New features:
	1) Pencil tool
	In "random lines mode", this adds letters/symbols/numbers randomly to the image.
	In "free hand mode", it works just like a normal free-hand drawing pencil.
	2) Manual letters/characters directly into the image
	Simply click anywhere, and start typing. A good way to add nonsense text.
	Note there is no blinking cursor, nor are there backspace or delete functions.
	Make sure to try out the "Peel" feature. It splits the image into two, making
    them look as if strips had been "peeled off".	
    To download MessageBlur for use on your computer, click here for a .zip file 
	with the .html and the javascript.

CuttleFish - "envelopes" for text messages

Click here to download. Get the latest version of Java (tm), unzip CuttleFish, double-click the .jar file, and you are good to go.
    What is CuttleFish?
    CuttleFish is a simple program that makes text messages unreadable to humans.
    CuttleFish does not use encryption. All it does is turn your messages into
    what looks like gibberish. It then puts this gibberish into a common file
    format, which serves as an "envelope" if you will. If a human opens such a 
    file in a standard program, he or she will see "garbage".
    This works also for many automated message scanners. Simple-minded scanners
    will "think" you made a mistake and created a bad file. 
    If you need strong privacy, encrypt your messages.

    CuttleFish is the text message equivalent of a birthday clown's magic trick.
    Distract people - and computers - while you do your clown thing.

    How to:
    Enter or paste message text into this editor.
    Select a File Format from the drop-down. Saving or opening a file will always use the currently
    selected File Format.

    Save the contents of the editor window into one of the "envelope file" formats.
    Open an envelope file and read the contents into the editor window. If the window remains empty, check the File Format

    Tell the recipient
    Recipients of any of these files need CuttleFish to extract the message. There is no "marker" in the CuttleFish
    output files because you would not want a bad guy to look for a marker and go "ah, easy". If you share files
    with others, you need to tell them about it.
    The following formats are supported
     "binary or executable file": Using the File menu entries "Make binary double" 
    and "Combine binary double", you can now process binary files or
    executable (program) files. Similar to the Double Strand text feature,
    two output files will be created. The first one contains the scrambled 
    bytes of the binary file, the second the scrambled byte positions. To combine
    the two and recreate the original binary file, select the two files (bin1) and 
    "numbers" bin. Cuttlefish will write out a file ending in "redone" as the
    fully functional binary file. 

    "Double Strand": the text is saved into two files, one containing the characters,
    the other named "filename_nubers.txt" containing the positions of
    the characters in the original text. The order of the characters is 
    randomized, so you need both files (in the same directory) to extract the
    message text. 

    ".avi movie": the text is saved as a .avi movie and is displayed as a pink
    bouncy ball in case you play the movie in a movie player.
    WARNING: The format of avi rendering changed with v. 1.1. Previous avis
    will not be decoded correctly.
    Configure the bouncy image to "pacman"  by changing the aviBlip "star" to
    Configure a footer image by replacing the existing footer.png. The new footer
    image should be at least 500 pixels wide and 200 high. If it is higher, it
    will automatically scroll upwards.
    "PDF .pdf": a file in portable document (pdf) format.
    "QR code .png": a Quick Response code .png file. Limit of 4200 characters.
    ".wav audio": a Wave audio file. Use CuttleFish to open a .wav message file.

    "empty .xml file": saves the message in "metadata" of an .xml file. The file
    is filled with unrelated text from a default template. Anybody reading the
    text will only see the adventures of Huck Finn. You can replace this file,
    which is an equivalent of "packing peanuts".
    "plain .png image": the message is saved in a plain image file.    
    "javascript .html": saves the message in the javascript section of an html file. 
    You can replace the default file with any file that has a javascript section.
    ".asp vb html": saves the message in an html file that has a Microsoft asp 
    vb script section.  You can replace the default file with any file that has such a section.

   "Java .jar file": saves the message in a Java (tm) .jar file. A template jar is 
    included in the package. You can replace it with any other .jar, but your
    replacement must have a manifest file with a "Main-class" entry.

   "DNA sequence .txt": turns your message into a "DNA sequence" using only the four
    basic building blocks ACGT. Mimicking of one or more common scientific formats 
    will be added.

    [BETA] "hieroglyphs .png": turns a message into an image file with hieroglyphs. 
    You need the font "Gardiner.ttf" (free download from http://users.teilar.gr/~g1951d/).
    Limitations of the BETA module: Only a couple of hundred of characters (need to add
    page handling).
    FONT DEPENDENCY: This module may fail if the graphics capabilities on the machines
    of sender and recipient are too different. Please TELL us about issues!

    [experimental] "CSS stylesheet .css": saves in a cascading stylesheet. This is a very rudimentray 
    implementation, really a proof of concept. You should change the source code CSSHandling
    class to get a good implementation.
    The CuttleFish source code is here as a Netbeans project. 

Server based viewer for Translation Memory Exchange (.TMX) and Terminology Exchange (.tbx) files

What is the TmxViewer? =====================
    A web application that allows to upload TMX files to a server for viewing over the network.
    Once deployed, users go to http://server:port/tmx to get the index page.
    The rest is self explanatory.

    The latest version also supports .tbx files. Maximum tested file size was just over
    8MB with about 15 000 entries.

    Files are uploaded into the directory "uploads" under "user.home". The folder will be
    created on first use if it does not exist.

    The content of a tmx file is displayed in a table that has as many columns as the tmx has 
    languages (xml:lang attribute values).

    In the latest version, of 8/8/2016, a parameter in the web xml was added.
    The parameter "edit" is set to "false" by default, which removes the table onclick
    If you want users to be able to edit a tmx, change the web xml parameter to "true".

    To edit an entry, click it, and make the desired change.
    When the mouse cursor leaves the text field, the change is sent to the server. The changed
    file is saved under the name "output.tmx". 

    NOTE: In this initial version, there is no synchronization for different concurrent users.
    You can, however, collaborate using the output.tmx (rename a desired file to output.tmx).

    Download the   .war file here.  or get the Netbeans sources 
     Netbeans sources with all libraries and build it yourself.

    Requirements: Java 1.8 and Tomcat 8.x (8.0.27 or higher, or equivalent).

    The TmxViewer is brought to you by http://www.vigoursoft.com/

xliffEdit - a serverless XLIFF translation memory tool using 100% javascript

    What is xliffEdit? 
    xliffEdit is a simple 
	translation memory tool for bilingual xliff files. 
    It is a proof of concept, meaning there is more work to do if you want
    to turn this into a full featured translation memory tool.

    The main purpose of xliffEdit is to demonstrate serverless, zero install,
    javascript file processing is not merely doable but viable for work.

    You can either download the html or play with it here.

	You can load one xliff file and one bilingual tmx file. The
	tmx if read-only for now. 
	You can use the browser's Find feature to search for partial
	matches and copy and paste them into the xliff target segement.
    As such, the main features are:
    1) Load an xliff file with one source and one target language. Tested only
    with Memsource (tm) xliff files.
    Tested only with FireFox.

    2) Make changes to text in the target colum. Save these changes in the
    "localStorage" and/or save them to a file (export). 
    Note that localStorage will - in the worst case - get deleted when you
    close your browser. Make sure to save the xliff to a file prior to that.
	3) If you load a bilingual tmx, the first 100% match for a source
	segment will be proposed for the currently clicked target segment.
    4) Save a modified xliff to disk for further processing, i.e. the only
    changes are to target segment text.

    Tech notes: 
	Only the innerHTML of an xliff target element will be 
	changed. Other elements/attributes will not be modified.

    Have fun.    


Hide-a-KeyText - easy text encryption

Use version v. 1.1.7 Check in Help. As of v. 1.1.2 this program is stable, it does what it is supposed to. See Known Issues and at the end of this page for details.
So, we are doing like the old Apple: Data formats in 1.1.7 are NOT backwards compatible with earlier versions. Don't throw away an earlier version if you have data encrypted with it.
New in this version: added AES128 encryption as a second pass.

An overview of Hide-a-KeyText -- simple text encryption for everyone

We called Hide-a-KeyText a scrambler instead of an encryption program to keep life simple and because we hate hype. As a matter of fact, Hide-a-KeyText can generate pretty much unbreakable output under the right conditions. Right now, you will get the best results by using a web page in a seriously foreign language in Website (http) or Local File.
We are using a Beale cipher from the days of people doing crypto with a pen and paper. If that sounds scary, read this description.

The term "key" is used here instead of "cipher". Cipher just sounds odd and off-putting. Grandma does not need this, and key is the conceptual bridge to the hide-a-key for the house.

How much text can you process in one operation? Around 1 MB, which is, for example, the plain text version of Mark Twain's Huckleberry Finn.

Hide-a-KeyText removes the scary and confusing parts of setting up usable encryption. Trade-offs exist, of course. For instance, cryptography experts would point out that the quality of the encryption varies depending on the web page or the image used as keys.

Click here for the executable program for end users.
Click here for the Netbeans source project.

Hide-a-KeyText is for text

If you want it to do anything beyond plain text, grab the Netbeans source package and play. You will also want some of the encryption libraries from SourceForge or GitHub.

How to use Hide-a-KeyText

Unzip Hoffiedist.zip, double-click the .jar, and you are up and running.

When you start Hide-a-KeyText, default values are set for the four fields above the message text area. This is a convenience feature. For later use, set up your own values as described right below.


Click Settings, Users, and click anywhere on the row of the Test user. Then click Use current row in Main window to transfer the data into the four fields above the text message ara of the main Hide-a-KeyText window. Close the Users window.

In the main window, you can now click Scramble to see how the text type message here is scrambled. Click Unscramble to get the text back.

Delete type message here (Edit, Delete), and type your own message.

When you are done, open your preferred webmail, hit Compose, copy the scrambled text into the webmail text window. Add the recipient, send the mail.

Using Hide-a-KeyText without encryption

From v. 1.1.5, an "envelope" feature is available. The File menu has two new items: Put unencrypted file into envelope and Open unencrypted envelope. Use Put unencrypted file into envelope to open a text file (ascii or utf-8 only) and wrap it into an "envelope". The envelope is a .png image or .wav file. Bith files are created in the encrypted output folder. This is a bit misleading and needs to be changed. Anyway the text is not encrypted, merely put into these "envelopes", the generated file name has "envelope" in the name. Open unencrypted envelope is used to extract the text from either envelope. The extracted file will have "openedenvelope" in its name.

This feature is useful for sending a public PGP key to someone without triggering an email scanner that says "oh, a PGP key, let me make a note to check future emails of this person".

Need help? We'll guide you

Encrypt some text, email it to mailhead [at] uncharteredcharters.com, and we'll send you something back. We need to know how you did it. So, use the Simple Test user and make sure to have Fake Language set to Leave as is.

What your recipient needs

Website (http) or Local File is the critical setting. It is the key of the scrambler. Tell your recipient over the phone if you are worried. In reality, in most Western countries, you are probably safe just sending him or her a normal email...

The Fake Language setting is not critical but it must be the same on your machine and on that of the recipient. Leave as is is fine. If you select any of the other options, your scrambled text pretends to be the selected language or "alphabet".

Why use Hide-a-KeyText?

How secure is Hide-a-KeyText?

The big question. Absolutely safe against busy common criminals. It also makes it impossible to scan emails for text during transmission. Experts can create their own key pads consisting of true random numbers or characters to increase safety. But experts are probably using PGP anyway. Ultimately, if someone powerful is out to get you, you do need to keep your fingers crossed and read up on behaviors that increase your safety.

How to break Hide-a-KeyText

Languages have a problem: at the end of the day, they need to make sense. There is a limited number of words to each language, and there is a structure. Together, they provide the precision necessary for communication between humans. When you fiddle too much with either, you get...art. Poetry and music. Or you get an F in school or are fired from a job.
That combination of the number of words and structure means mathematicians can do some magic and work with these limitations to narrow down the possible solutions. This Wikipedia article is a great resource on the issue. Right now, Hide-a-KeyText offers only some very basic defense against this. When you use text (a web page) to encrypt a message, Hide-a-KeyText removes all spaces from that text and flips it before encrypting your text. When you use an image, pixels that have the value 0 are ignored as the program builds a key out of pixel values.

Paranoid? Double up!

You can double up like this:
  1. Encrypt the plain text. Leave the jumble of numbers in the text message field.
  2. Switch to a different entry for User settings with a different web site or local file. Click Scramble.
  3. To decrypt this later, perform these two steps in the reverse order, step 2 followed by step 1.

Do you have an app for that?

No, but if we see people use the desktop program, we might do one.

Can I help?

If you like Hide-a-KeyText, write an email to the folks who develop Thunderbird, ClawsMail or other email clients and see if they are willing to add such a simple scrambling mechanism.

Examples of encrypting "type message here" with the inbuilt settings

This is the text shown when you start the program. The table below shows the results of using the inbuilt USER table settings. The third column has comments.
Website or local filename from default users tableOutputComments
http://www.unchartedcharters.com/TrueRandomText.xml188 175 180 220 144 166 219 186 172 172 202 171 81 183 181 167 158 This xml file has truly random strings, which makes it a very secure key. The 3 digit numbers are a result of the English alphabet text. The file is from the FREE services section of www.random.org. If you want to use this keytext to communicate with someone, you must transmit this exact file to the recipient first.
http://www.unchartedcharters.com1196 1206 1189 1189 1111 204 1181 1197 1210 1183 1193 196 1113 1181 1187 1188 1190 The 4 digit numbers are a result of the Russian text at the end of the web page.
http://www.unchartedcharters.com/phili09.png309 314 305 292 220 288 275 285 309 283 287 287 210 264 259 274 267 The pixel values of an image are between 0 and 255. This results in a 3 digit encryption output for an English text. The best images to use as "keys" are noisy, very busy images, in which colors and shapes change a lot.
/localimagekeys/randompixels1.png263 230 152 262 288 258 334 308 329 155 299 146 256 358 161 278 162 The file randompixels1.png contains pixel values generated using the Java SecureRandom class.
http://www.asahi.com/articles/ASGCL5TPMGCLUTFK00W.html 12493 12535 12468 12491 12460 12482 35804 20560 12541 12521 12498 32105 26497 38659 22370 12509 12504 5 digit encrypted output because the Japanese page characters in Unicode start very high up.

Known issues and workarounds

  1. Wikipedia articles are very cool as "key" text. When you copy a foreign language Wikipedia url from your web browser into the Website (https) or local filename field you get something like this:
    https://ru.wikipedia.org/wiki/%D0%A1%D0%BA%D0%BB%D0%BE%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%BA_ Here is how to fix this: First copy only the "English" looking part, https://ru.wikipedia.org/wiki/. Make sure to have the final / (forward slash). Then copy the Russian part in the browser and paste it into the field immediatelly after the https://ru.wikipedia.org/wiki/ like so:
  2. Alternatively, you can open the userdata.xml in a utf-8 editor and do the entry manually. Be careful about the sequence of comma and space!
  3. We still need to compress the image file output of encrypted text.
  4. A status and error messages window will be added.
  5. We will also provide instructions on how to select images on the web (many are not colorful or chaotic enough).
  6. We need critical eyes on the code and the algorithms! Email us: mailhead [at] unchartedcharters.com

New in 1.1.6 - using Hide-a-KeyText without encryption; encryption quality display chart

See the "How to" section above for details. For each encryption operation, a file names visualizeEncoding.png is created in the "hoffie" folder. The chart shows the relationship between the "text", the "keytext" and the encrypted "encoded" output. We 'll do some statistics in the next versions to help make sense of these graphs.

New in 1.1.5 - encrypted text is output as a .wav audio file

Every time you Scramble a text, Hide-a-KeyText automatically puts the resulting groups of numbers into a .wav audio file in the encrypted text output folder under the Hide-a-KeyText "hoffie.jar" folder. The filename is generated as follows: date plus Display Name. If the Display Name field is empty, the file only consists of the date plus the .wav extension.

You can attach the .wav file to an email, and the recipient opens the file in Hide-a-KeyText with the File menu and then unscrambles the content of the .wav file.
The .wav file is a "real" audio file, although you will only get a bunch of clicking sounds when you play it in a music player.

New in 1.1.4 - advanced users can send mail directly from witin Hide-a-KeyText

Email can be sent from witin Hide-a-KeyText. This is a convenience feature for advanced users, and additional setup work is required. Edit the template mailsend.xml in the same folder as Hoffie.jar to reflect the server name, user, password, and authentication/smtp ports required by your email provider.
For developers and the utterly unafraid, two standalone utility classes are included, GenerateRandomImage and GenerateRandomText. The file "randompixels1.png in the local image keys folder was created with these. This .png file is a good alternative to images loaded from the web.

New in 1.1.3 - web page now also stored locally, added default folders

The text of a web page you use as a key is stored locally when you use the page with an "https...." setting. The page text is then automatically stored locally in the folder localtextkeys. You can then add a new row in the USERS table to point to this local key file. The sample entries in the Users table show the format of the paths.

Images are now downloaded into their own local folder localimagekeys to help better organize everything.

Finally, the .png files with the encrypted text also have their own folder encrypted_text_output.

Do not change theses folder names. We'll make them configurable later.

New in 1.1.2 - Send an image file containing the encrypted text as email attachment

Every time you Scramble a text, Hide-a-KeyText automatically puts the resulting groups of numbers into a .png image file in the folder where your Hide-a-KeyText "hoffie.jar" resides. The filename is generated as follows: date plus Display Name. If the Display Name field is empty, the file only consists of the date plus the .png extension. To show you what it looks like, Hoffiedist.zip contains the file 201411_20_15_16Downloaded_image_local.png, the date and the Display Name Downloaded image local. We used this entry after downloading and image as a source of the "key". See the next paragraph for details.

Why this is useful?
If grandma is afraid to make a mistake in the copy/paste method, she can now Compose a new email and attach the encrypted file. The subject should not say anything about the attachment. The message text shoud be a simple "hi from grandma".

Note that the format of this image file will change in one of the next versions. This first cut wastes a lot of space in the image.

New in 1.1.1 - Using an image to encrypt your text

It works just as using web page text or a local text file. The Users table provided with Hide-a-KeyText now offers these additional choices. The first entry points to an image file on our server. Scramble will take a bit longer than with a web text because Hide-a-KeyText downloads the image first. An image is always downloaded into the folder where your Hide-a-KeyText "hoffie.jar" resides.

Once Hide-a-KeyText has downloaded an image, you can set it as a local file as shown in the example entry Downloaded image local. If you use the same image to encrypt more text, the process will be faster because no connection to the web is made. [Image test, phili, http://www.unchartedcharters.com/phili09.png, Leave as is] [Downloaded image local, , phili09.png, Leave as is] Alternatively, you can try these images:
Silk painting, cowgirls.
Bean plants with red and white blossoms.