We are here to understand the concept of encryption and decryption done for the various strings.

Encryption and Decryption
The concept of encryption is the process of converting electronic data into another equivalent form, called “ciphertext” that cannot be easily understood by anybody except the authorized personnel. Whereas decryption is the reverse process of encryption.
- Data: The term data can be simply defined as the information translated into a form that is more convenient to process.
- Ciphertext: When the plaintext written by anyone is encrypted using some keys then the result is known as ciphertext.

- Authentication: Verification of the message can be done by its origin.
- Integrity: Ensures that the content of the message has not been changed during the transmission.
- Non-repudiation: The message sender cannot deny for the sent message.
There are various algorithms for encryption and decryption such as RSA algorithm, AES and so on that needs private and public keys. But here we will encrypt the string without using any algorithm.

First of all, we will explain the string encryption.
For encrypting the string we will consider various cases for varying characters in the given string. Just have a look at the code below to understand what is happening to encrypt the string using swa itch case.

Code example: Encryption
As we know, the string may contain lowercase letters, uppercase letters, numerals, special symbols and so on. In the following code, we did not write code for uppercase letters.
- import java.util.*;
- class Encryption
- {
- public static void main(String args[ ])
- {
- String str,Newstr=" ";
- System.out.print("Enter the String you want to Encrypt: ");
- try {
- Scanner in=new Scanner(System.in);
- str=in.nextLine();
- for (int i=0;i<str.length();i++)
- {
- char ch=Character.toLowerCase(str.charAt(i));
- switch (ch)
- {
- case 'a':
- Newstr=Newstr+"{";
- break;
- case 'b':
- Newstr=Newstr+"}";
- break;
- case 'c':
- Newstr=Newstr+"#";
- break;
- case 'd':
- Newstr=Newstr+"~";
- break;
- case 'e':
- Newstr=Newstr+"+";
- break;
- case 'f':
- Newstr=Newstr+"-";
- break;
- case 'g':
- Newstr=Newstr+"*";
- break;
- case 'h':
- Newstr=Newstr+"@";
- break;
- case 'i':
- Newstr=Newstr+"/";
- break;
- case 'j':
- Newstr=Newstr+"\\";
- break;
- case 'k':
- Newstr=Newstr+"?";
- break;
- case 'l':
- Newstr=Newstr+"$";
- break;
- case 'm':
- Newstr=Newstr+"!";
- break;
- case 'n':
- Newstr=Newstr+"^";
- break;
- case 'o':
- Newstr=Newstr+"(";
- break;
- case 'p':
- Newstr=Newstr+")";
- break;
- case 'q':
- Newstr=Newstr+"<";
- break;
- case 'r':
- Newstr=Newstr+">";
- break;
- case 's' :
- Newstr=Newstr+"=";
- break;
- case 't':
- Newstr=Newstr+";";
- break;
- case 'u':
- Newstr=Newstr+",";
- break;
- case 'v' :
- Newstr=Newstr+"_";
- break;
- case 'w':
- Newstr=Newstr+"[";
- break;
- case 'x' :
- Newstr=Newstr+"]";
- break;
- case 'y':
- Newstr=Newstr+":";
- break;
- case 'z' :
- Newstr=Newstr+"\"";
- break;
- case ' ' :
- Newstr=Newstr+" ";
- break;
- case '.':
- Newstr=Newstr+'3';
- break;
- case ',':
- Newstr=Newstr+"1";
- break;
- case '(':
- Newstr=Newstr+'4';
- break;
- case '\"':
- Newstr=Newstr+'5';
- break;
- case ')' :
- Newstr=Newstr+"7";
- break;
- case '?' :
- Newstr= Newstr+"2";
- break;
- case '!':
- Newstr= Newstr+"8";
- break;
- case '-' :
- Newstr= Newstr+"6";
- break;
- case '%' :
- Newstr = Newstr+"9";
- break;
- case '1':
- Newstr=Newstr+"r";
- break;
- case '2':
- Newstr=Newstr+"k";
- break;
- case '3':
- Newstr=Newstr+"b";
- break;
- case '4':
- Newstr = Newstr+"e";
- break;
- case '5':
- Newstr = Newstr+"q";
- break;
- case '6':
- Newstr = Newstr+"h";
- break;
- case '7':
- Newstr = Newstr+"u";
- break;
- case '8' :
- Newstr= Newstr+"y";
- break;
- case '9':
- Newstr = Newstr+"w";
- break;
- case '0':
- Newstr = Newstr+"z";
- break;
- default:
- Newstr=Newstr+"0";
- break;
- }
- }
- }
- catch(Exception ioe)
- {
- ioe.printStackTrace();
- }
- System.out.println("The encrypted string is: \n" +Newstr);
- }
- }






Persueasus JacksonPosted Jun 15, 2018, 3:08 PM
Sir , I am only a student . So Please Do forgive me If I am somewhere wrong ..... But I thing the replace method is not suitable As because one character once replaced will again be replaced by some other character in the next steps and may show improperly decrypted string when it is decrypted ...... So I think the Above mentioned way i.e., switch-case method is the best one ..... Please if possible make me aware of any wrong in my concept if any .....
Manish saraswatPosted Sep 26, 2017, 2:28 PM
Now I want to convert output string into non-readable text (non-readable like: when we open encrypted file in notepad then it show weird font sign). How can i do that ??
Gopi ChandPosted Jun 3, 2015, 5:54 AM
Yes, you can do it by replace() method...as str.replace('a','%'), str.replace('b','#') etc. It will take less numbers of lines. And i also said in the article that there can be plenty of way out of which i had shown one of them. You can also choose just 5-6 keys to encrypt the different characters, it all depends on the sender,hence the string will be encrypted as #$%@%#%@$ i.e. encrypted string by four keys (@#$%). Thank you. :)
Anant KulkarniPosted Jun 3, 2015, 5:08 AM
Nice attempt. Don't you think, by the way, that String.replaceAll will be more efficient than a switch statement inside a loop? Kindly note that I am NOT a java developer and my concepts are C# driven, so can be wrong.