1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Encryption code explanation.

  1. Jun 29, 2010 #1

    My professor wants us to code a program that encrypts a massage and decrypt it , I know that to encrypt something you need a message and a key, and you assign a number to each letter or the message, and you do the same with the key, and then you add the two numbers together to get the message encrypted

    for example if the message was
    and the key was


    a = 0
    b = 1
    c = 2
    d = 3

    we do this to encrypt it

    and 235235 is bdfbdf according to the assigned values of a, b, c, and d

    so the final encrypted message is bdfbdf

    this is what i wrote, but it only encrypts one letter of the message, and it uses one letter of the key, i need an idea of how to make it work for more than one letter

    import java.util.Scanner;

    public class assign3
    public static String[] array ={"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};

    public static void main(String [] args)

    Scanner input = new Scanner (System.in);

    System.out.println("insert messege =");
    String message = input.next();
    int i = 0;
    int num = 0;

    char ch;
    while(i < message.length()){
    ch = message.charAt (i);
    num = ch - 'a';
    i = i +1;

    System.out.println("insert key =");
    String key = input.next();
    char ch2;
    ch2 = key.charAt (0);
    int num2 = ch2 - 'a';

    int q;

    q = num + num2;
    System.out.println("encrypted number = " + q);

    if (q>=26)
    q = q%26;

    System.out.println("Encrypted letter = " + array[q]);

  2. jcsd
  3. Jun 29, 2010 #2


    Staff: Mentor

    That would be message. Massage is something entirely different.
    I added [ code] tags to format your code.
    I think that you are getting only one character from the line above. Same for your code to input the key.
    Is there some reason you're using the Scanner class to do I/O? You can do input as you are doing, but you need to have a loop to read all the characters of the message and the key, not just a single character each. Another possibility for input is the BufferedReader class using its readLine() method.
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook