 I have written this small application originally to encrypt my journal entries without the need of a computer, the work evolved and I have added some functions to the algorithm, then I made it a public project.

The application supports some alphabets which you can choose among below, and it uses the One-Time Pad method. You’d need a key which is at least as long as the input text.

Encryption is given by the following formula:

${C}_{n}=\left({P}_{n}+{b}_{n}\right)\mathrm{mod}L$

While decryption is given by the following formula:

${P}_{n}={C}_{n}-{b}_{n}\left(\mathrm{mod}L\right)$

Where:

• C: The ciphered character.
• P: The plain text character.
• B: The key text character.
• L: The length of input alphabet.

However, if the text were multilingual, then every encryptable character will be ciphered using a usable character of the key.

For example, if the input was:

dolor sit amet, consectetur

And the key was:

condimentum magna. Nullam in lectus

The characters “,” and “.” will be ignored during the procedure.

It will produce the output:

fcyrz emg tgqf, cuasrweptgz

If there were other characters like numbers or Arabic characters but these alphabets weren’t chosen from the input alphabets menu, they will be completely ignored.

• Options:
• Salt: Inject a phrase of maximum length of 20 characters every nth word, where n can be between 1 and 100.
• Fake Spaces: Insert fake characters in every word by checking the value of the first character:
• Two letters after the first one if it was one of the first third of the alphabet (from A to J in English)
• One letter after the first one if it was one of the second third of the alphabet (from K to S in English)
• Don’t add anything for the rest.
• Remove Punctuations: Remove them from the output, as they’d be automatically ignored in input or key.
• Vigenère Cipher: If you wanted to use a key which is shorter than input text. This option will keep concatenating the key to itself when needed.
• Automatically Determine Input Alphabet: The app will try to guess the input text alphabet by using the unique letters which aren’t used in any other alphabet.