Skip to content

nikhil-RGB/Shuffle-Cipher-Desktop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Shuffle-Cipher-Desktop

encrypter-new-image


Purpose

A desktop application to cipher your plain text into garbage ASCII strings!
This desktop java GUI application helps you mantain privacy by ciphering simple text and turning it unreadable via a simple Cipher algorithm cooked up for fun.

Sample input paragraph:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam tristique fermentum metus, sit amet maximus nisi eleifend ac. Maecenas vel sapien in risus porta mollis. Nulla venenatis suscipit purus, a pulvinar tellus mollis ac. Duis nec mi hendrerit, accumsan urna quis, tincidunt nibh. Vestibulum volutpat orci orci, int erdum feugiat eros iaculis et. Ut gravida commodo lectus, at ultrices felis blandit sed. Aliquam nec molestie ex. Maecenas quis nisl non odio ullamcorper dignissim id ac nisl. Sed at semper sem, in pulvinar tellus. Nullam consequat dignissim egestas. Quisque at dapibus magna. In hac habitasse platea dictumst. Duis iaculis elit vel lacus tempor imperdiet. Sed semper tortor sit amet finibus luctus.

Sample output paragraph:

ᓢᓝᓨᓯᓡᑼ ຊງຆ๼ืๅ຋๾ຄ๺ืຍ຀ຌื຋ຆ຅ຆ๽ืຆຌຌງຂืຆ๼຋ຆ๥๾๺ຍ๼ຍຌ຋ื๺๻ຂງຂຊ๼຀ງ๾ู๼຅຀ຍๅู๥ຎ຃຅๸ຆืຍຉຂຊຍ຀ຊຌ๾ื๿๼຋ຄ๾຅ຍຌຆืຆ๼ຍຌຌใูຊຂ຋ู๸ຆ๼ຍืຆ๸ຑ຀ຆຌຌืງ຀ຌ຀ู๼຅๼ຂ๽๾຅๽ื๺๺็ื๦๸๾๺๾຅๺ຊูຍ๾຃ูຊ๺ງຂ๼ງืຂ຅ูຉຂຊຎຊูງຈຉຍ๸ูຄຈ຃຅຀ຌๅู๥ຎ຃຅๸ูຍ๾຅๾຅๺຋ຂຊูຊຎຊ๼຀ຉ຀ຍื>ຉຌ຋ຌຌใู๸ูງຎ຃ຏ຀ງ๸຋ืຍ๼຅຃ຎຊูຄຈ຃຅຀ຌื๺๺็ื๝ຌຂຊู຅๾๺ูຄຂืກ๼ງ๻຋๼຋຀ຍใู๸๼๺ຎຄຌ๸ງืຎຉງ๸ูຈຎ຀ຌใู຋ຂ຅๼຀๽ຌງ຋ู຅ຂ๹ກๅู๭๾ຊຍ຀๻ຌ຅ຌຆืຏຆ຅ຌຍງ๺຋ูຆ຋๺ຂืຈຉ๼຀ๅืຂ຅ຍ๼຋๻ຎຄู๽๾ຌ຀຀๺຋ู๼຋ຆຌืຂ๸๼ຌ຅຀ຌื๾຋็ื๮຋ู๾຋๸ຏ຀๽๸ู๺ຈຄຆຆ๽ຆู຃๾๺ຍຌຌใู๸ຍืຎ຃ຍຉຂ๺๾>ຊู๽๾຃ຂຊู๹຅๸ງ๻ຂ຋ูຊ๾๻็ื๚>຃ຂຈຎ๸ຆืງ๼๼ืຆຆ຅๼ຌ຋ຂ๼ู๼ຑๅู๤๺๼๼๼ງ๸ຌืຊຌຂຊู຅ຂຊ຅ืງຆງืຈ๻ຂຆูຌ຅຃๺ຄ๼ຆ຋ງ๾ຉู๻ຂ๾ງ຀ຌຊຂຄู຀๽ื๺๺ู຅ຂຊ຅ๅู๪๾๻ู๸ຍืຌ๼ຆງ๾ຉูຊ๾ຄๅืຂ຅ูງຎ຃ຏ຀ງ๸຋ืຍ๼຅຃ຎຊ็ื๧ຌ຅຃๺ຄู๺ຈ຅ຌ๼ຊຌ๺຋ู๻ຂ๾ງ຀ຌຊຂຄู๼຀๼ຌ຋๺ຊ็ื๪ຌຂຊຊຌ๾ื๺຋ู๻๺ງຂ๹ຎຊูຄ๺๾ງ๸็ื๢຅ู๿๺๺ู๿๺๹ຂ຋๺ຊ> ຌ๼ูງ຅๸ຍ๼๺ื๽຀๼຋ຎຄຌ຋็ื๝ຌຂຊู຀๺๺ຎ຃ຂຊู๼຅຀ຍืຏ๼຅ื຅๸๼ຌຌืຍ๼ຆງຈຉู຀ຆງ๾ຉ๽຀๾຋็ื๬๼๽ืຌ๼ຆງ๾ຉู຋ຈຉຍຆ຋ืຌ຀ຍื๺ຄ๾຋ู๽ຂ຅ຂ๹ຎຊู຃ຎ๺ຍຌຌๅุธ

The application further allows you to password-protect ciphered text, to prevent it from being deciphered by anyone with access to the application and your text.
Note: This algorithm is not industry standard encryption, it is simply a 3-layer cipher algorithm designed to make text human-unreadable-
The ciphered text is vulnerable to reverse-engineering, and should not be considered a guarantor of 100% privacy

The application GUI is built in AWT/SWING(JAVA 8).

How it Works:

What exactly does this program do, you might ask? Simple, really- it reads the ASCII values of each character in the string inputted by the user and just, well- plays around with the values. Think about it for a second- the ASCII value for the space character is 32, right? Now boost that value up by a random number between 8000 to 22000, say 9000- the said ASCII value now becomes 32+9000=9032 i.e '⍈'.

Now, what if we took in a string and boosted each character in the string by 9000?

Sample String: "MAD SUS!"

Boosted String:"⍵⍩⍬⍈⍻⍽⍻⍉"

Boost Value/key: 9000

Now, simply subtracting 9000 from each character's ASCII value in the boosted string, we get the original string. Of course, such an encryption standard is trivially easy to break/reverse engineer, but it gets my point of playing around with ascii values to render text unreadable across.

Encryption routine in it's simplest form:

public static String encrypt(String s,int boost)
{

    String ss="";

    for(int k=0;k<s.length();++k)

    {

        char ch=s.charAt(k);

        ch+=boost;

        ss+=ch;

    }

    System.out.println(ss);

    return ss;

}

Of course, we can spice things up a bit- instead of adding up values to each character in the string, we can subtract a random value(say, between 20 and 40) from alternate characters in the string.

Now, we have a string with characters at odd positions boosted by say, 9000 and characters at even positions subtracted by say, 30.

Input String: "MAD SUS!"

Boost value: 9000

Decrement value: 30

Encrypted String:"/⍩&⍈5⍽5⍉"

To reverse the conversion, we simply need the boost value and decrement value, which will be used as keys- characters at even positions will be boosted by the decrement value and characters at odd positions will be decremented by the boost value.

Of course, to increase the complexity a bit, other conversions can be factored in, such as breaking the string into two parts at a random position and reversing one part(the first half), then adding both strings back together, increasing the complexity of reverse engineering the algorithm and simultaneously adding a third key to the algorithm.

Final Encryption Routine:

public static String encrypt(String s,int boost,byte decrement,int pos)

{

    String ss="";

    for(int k=0;k<s.length();++k)

    {

        char ch=s.charAt(k);

        if(k%2!=0)

        ch+=boost;

        else

        ch-=decrement;

        ss+=ch;

    }

    //Split the string into 2 parts

    String a1=ss.substring(0,pos);

    String a2=ss.substring(pos);

    //reverse the first half

    a1=new StringBuffer(a1).reverse().toString();

    ss=a1+a2;

    System.out.println(ss);

    return ss;

}

Final Decryption Routine:

public static String decrypt(String s,int boost,byte decrement,int pos)

{

    String ss="";

    String a1=s.substring(0,pos);

    String a2=s.substring(pos);

    //reverse the first half to bring it back to its original state

    a1=new StringBuffer(a1).reverse().toString();

    s=a1+a2;

    for(int k=0;k<s.length();++k)

    {

        char ch=s.charAt(k);

        if(k%2!=0)

        ch-=boost;

        else

        ch+=decrement;

        ss+=ch;

    }

    System.out.println(ss);

    return ss;

}

Input Text: "That's mad sus!"

Boost value:10000

Decrement value:40

position key: 3

encrypted text: 9❸,➄ ➃￸❽9❴￸➃M➃

decrypted text: That's mad sus!

How to Use

  • Download the .zip file from the releases section.
  • Ensure you have JAVA 8/9 installed on your system.
  • Unpack the .zip file and follow the launch intructions in the release description.

Compatible with the Web Shuffle Cipher