Programming an encryption program (Plain text-> Caesar cipher-> ASCII)?

I really need to know how you would encode this or something similar in Java: http://www.cs.carleton.edu/faculty/adalal/teaching/f05/107/applets/ascii.html

Here is my attempt, I have been on this all day (literally), and I had to look for how to do it on the Internet, because since my knowledge of Java is not so great, I can not understand (at the beginning of today I did not know anything in common with arrays) of all this I need a little help or a push in the right direction.

[edit] Sorry, forgot to indicate a question. I am having problems with the fact that you are not converting and encrypting PlainText, but trying to convert the encoded message (encrypted by my program, of course) to PlainText (i.e. I can’t just cancel it using a variable in my program on which I really should be able to read and decode it)

private void encryptBUTActionPerformed(java.awt.event.ActionEvent evt)    
{                                           
    int encryptLength=encryptTXT.getText().length();
    int[] anArray=new int[encryptLength];
    String key=encryptKey.getText();
    if(key.isEmpty())
    {
        decryptTXT.setText(""+"INVALID KEY");
    }
    else
    {
        int key2=Integer.parseInt(key);
        for(int i=0;i<encryptLength;i++)
        {
            int letter = encryptTXT.getText().toLowerCase().charAt(i);
            System.out.println(letter);
            System.out.println((char)letter);
            int letterCiphered= (letter-key2);
            anArray[i]=letterCiphered;
        }
        String output=(Arrays.toString(anArray));
        decryptTXT.setText(output);
    }
}                                          

private void clearBUTActionPerformed(java.awt.event.ActionEvent evt)               
{                                         
mainPassword.setText("");
encryptTXT.setText("");
decryptTXT.setText("");
encryptKey.setText("");
decryptKey.setText("");
}                                        

private void decryptBUTActionPerformed(java.awt.event.ActionEvent evt)     
{                                           
    int textLength=decryptTXT.getText().length();
    ArrayList list=new ArrayList();
    String text=decryptTXT.getText();
    int count=1;
    String key=decryptKey.getText();
    if(key.isEmpty())
    {
        encryptTXT.setText(""+"INVALID KEY");
    }
    else
    {
        int key2=Integer.parseInt(key);
        for(int i=0;i<textLength;i++)
        {
            if(text.charAt(i)=='['||text.charAt(i)==','||text.charAt(i)==']')
            {
                count=count+1;
            }
            else if(count%2==0)
            {
                char number=text.charAt(i);
                char number2=text.charAt(i+1);
                int num=(int)number;
                int num2=(int)number2;
                int num3=num;
                int num4=num3+num2-15;
                int num5=num4+key2;
                char letter2=(char)num5;
                list.add(letter2);
                count=count+1;
            }
            else
            {

            }
        }
        Object[] obj=(list.toArray());
        String out=Arrays.toString(obj);
        encryptTXT.setText(out);
    }
}
+5
source share
3 answers

solvable

This is how I encrypted my text:

int encryptLength=encryptTXT.getText().length();
String key=encryptKey.getText();
String text="";
if(key.isEmpty())
{
    decryptTXT.setText(""+"INVALID KEY");
}
else
{
    int key2=Integer.parseInt(key);
    for(int i=0;i<encryptLength;i++)
    {
        int letter = encryptTXT.getText().toLowerCase().charAt(i);
        int letterCiphered = (letter-key2);
        text=text+letterCiphered+" ";
    }
    decryptTXT.setText(""+text);
}

This is how I decoded my text

try
{
String text=decryptTXT.getText();
String key=decryptKey.getText();
String[] decrypt=text.split(" ");
String sentance="";
if(key.isEmpty())
{
    encryptTXT.setText(""+"INVALID KEY");
}
else
{
    int key2=Integer.parseInt(key);
    for(int i=0;i<decrypt.length;i++)
    {
        int number=Integer.parseInt(decrypt[i]);
        char letter=(char)(number+key2);
        sentance=sentance+letter;
    }
    encryptTXT.setText(""+sentance);
}
}
catch(NumberFormatException e)
{
    encryptTXT.setText(""+"Please enter a valid encoded message");
}

Thanks for the help, the guys were much easier than I thought.

+1
source

It seems that your encryption just shifts each character of the message by a given value.

 int letterCiphered= (letter-key2);

, , .

 int letter= (letterCiphered+key2);

, , - .

:

, ascii , .

, , String.split() .
, Integer.parseInt().
, ascii , char c = (char)97;

ascii, , .

0
source
package cipher;

import java.io.*;
import java.util.Scanner;

public class Cipher {

    public static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
    public static final String ADDRESS = "C:\\Users\\abhati\\Documents\\NetBeansProjects\\Cipher\\encode.txt";
    public static final String LOCATE = "C:\\Users\\abhati\\Documents\\NetBeansProjects\\Cipher\\decode.enc";


    public static int MenuOption() throws Exception
    {
       int option;
 do{

        System.out.println("    +++++++++++++++++++\n    +   1. Encrypt    +");
        System.out.println("    +++++++++++++++++++\n    +   2. Decrypt    +");
        System.out.println("    +++++++++++++++++++\n    +   3.  Quit      + \n    +++++++++++++++++++");
        System.out.println("\nWhat would you like to do?");
        Scanner input = new Scanner(System.in); 
        option = input.nextInt();

        switch(option)
        {
            case 1:     encrypt();
                        break;

            case 2:     decrypt();
                        break;       

            case 3:     System.exit(0);
                        break;
            default: System.out.println("WRONG INPUT ??? PLEASE SELECT THE OPTION \n");
        }

    } while(option != 3);
              return option;   
 }

    public static void main(String[] args) throws Exception
    {
      System.out.println("Hello to Change Your text into cipher text!!!!\n");
      System.out.println("Put your text file in root folder.\n");
      MenuOption();
      System.out.println();
    }


    public static void encrypt() throws Exception {

     String ex;   
     FileReader in=null;
     FileWriter out = null;
      try {

          File file = new File(ADDRESS);
          in = new FileReader(file);
          file.getName();

          ex=getFileExtensionE(file);

          if(ex.equals("txt"))
         {
         out = new FileWriter(LOCATE);

         Scanner input2 = new Scanner(System.in); 
         System.out.println("What is the value for the key?");
         int key = input2.nextInt();


        Scanner input3 = new Scanner(in);
        while (input3.hasNext()) {
        String line = input3.nextLine();
        line = line.toLowerCase();
        String crypt = "";

        for (int i = 0; i < line.length(); i++) {
        int position = ALPHABET.indexOf(line.charAt(i));
        int keyValue = (key + position) % 26;
        char replace = ALPHABET.charAt(keyValue);
        crypt += replace;
        }
        out.write(""+crypt);
        System.out.println(""+crypt);
        }
        input3.close();
        System.out.println("\nDATA ENCRYPTED\n");
         }
        else 
         {
         System.out.println("DOESN'T ENCRYPTED!");   
                 }
    } catch(Exception e)
    {
        System.out.println("\n NO FILE FOUND WITH THIS NAME!!!");   
    }
        finally {
         if (in != null) {
            in.close();
         }
         if (out != null) {
            out.close();
         }
      }
}

    public static void decrypt() throws Exception {

      String ex;
      FileReader in = null;
      FileWriter out = null;
      try {

         File file = new File(LOCATE);
         in = new FileReader(file);
         file.getName(); 

         ex=getFileExtensionD(file);

          if(ex.equals("enc"))
         {
         out = new FileWriter("encrpted_DATA.txt");

         Scanner input4 = new Scanner(System.in); 
         System.out.println("What is the value for the key?");
         int key = input4.nextInt();                    

        Scanner input5 = new Scanner(in);
        while (input5.hasNext()) {
        String line = input5.nextLine();
        line = line.toLowerCase();
        String decrypt = "";

        for (int i = 0; i < line.length(); i++) {
        int position = ALPHABET.indexOf(line.charAt(i));
        int keyValue = (position - key) % 26;
         if (keyValue < 0)
            {
                keyValue = ALPHABET.length() + keyValue;
            }
        char replace = ALPHABET.charAt(keyValue);
        decrypt += replace;
        }
        out.write(""+decrypt);
        System.out.println(""+decrypt);
        }
        input5.close();
        System.out.println("\nDATA DECRYPTED\n");

        }
        else 
         {
          System.out.println("DOESN'T DECRYPTED!");   
         }
      }  catch(Exception e)
    {
        System.out.println("\n NO FILE FOUND WITH THIS NAME!!!");   
    }
         finally {
         if (in != null) {
            in.close();
         }
         if (out != null) {
            out.close();
         }
    }
}

    public static String getFileExtensionE(File file) {
    String name = file.getName();
    try {
        return name.substring(name.lastIndexOf(".") + 1);
    } catch (Exception e) {
        return "";
    }
}

    public static String getFileExtensionD(File file) {
    String name = file.getName();
    try {
        return name.substring(name.lastIndexOf(".") + 1);
    } catch (Exception e) {
        return "";
    }
}  
}
-3
source

All Articles