Encrypt your text
Put any text or even program code into the box below and enter your key or password to encrypt. Without having the correct password key, no-one will be able to read what you have written.
This is a type of encryption I have developed. There is probably some easy way of cracking it that I don't know about, but as far as all the maths that I know goes, this is almost impossible to crack without using brute force.
Each letter of the key is translated into its hex ascii value. The text to encrypt is taken in sections round( length of key / 2 ) long. Each section is then operated on as follows:
- Convert each character of the section into hex ascii values and append to form one big hex number
- Add the hex ascii value of the first letter of the key
- Divide by the hex ascii value of the second letter of the key
- Subtract the hex ascii value of the third letter of the key
- Multiply by 0.01 times the hex ascii value of the forth letter of the key (the 0.01 makes the number small enough for the + and - to have a big effect. Otherwise, getting a number relating to a + or - wrong in the key would be un-encryptable if Math.round was also used).
- Add the hex ascii value of the fifth letter of the key
- etc.
The resulting numbers are then appended separated with 'O.O'.
To download the script(s), see the script license, and check details like browser compatibility, use the links on the navigation panel at the top of this page.
One of my readers has written a better encryption library based on RC4 and Base64.
Note, program or image code will NOT work in Internet Explorer because it treats certain character combinations as if they were a character in the extended character set, even if they can be represented in the standard character set as more than one character. As a result, the escape method returns them in the format %u___ which cannot convert to a two character hex ascii number.
Future plan
There is a second level of encryption that could be added to this method. Before any other encryption, two random numbers will be generated that will be used to add then divide. The extra numbers will then be hidden at random points inside the encrypted text. At the start of the encrypted text, two numbers will be stored, giving the locations of the random numbers. Now all other encryption is used (as it is now).
The advantage of this is that in order for the locations of the random numbers to be discovered, the unencryption will have to be perfect, or the numbers giving the locations will be unencrypted to the wrong value. The problem at the moment is that, in exceptional circumstances, if the key used to unencrypt is almost right, the unencrypted text will be readable to a small extent. Eg. 'sam jackson' when encrypted using the key 'PPPPP' can be unencrypted using the key 'PPPPO' to give 'saÑ jÅck×oÒ'. Ok, so it's not perfect unencryption, but you can see some letters that might give something away. This new idea makes the output completely unreadable, with even a small variation in key.