проблема с шифрованием и дешифрованием текста - PullRequest
0 голосов
/ 17 января 2011

У меня проблема с моим кодом.Я делаю код, чтобы сделать две вещи: зашифровать текст и расшифровать текст.Мой код был делать Encrypt правильно, но метод Decrypt не работает.Я делаю некоторые изменения, чтобы исправить метод Decrypt, но в результате шифрование и дешифрование не работают. Я пытаюсь исправить это, но не могу.помогите мне исправить методы и сделать их правильными.

Первый класс

package so4717814;

public class text {

  public static final int AlphaSize = 26;
  public static final char[] alpha = { //
      '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', //
  };

  protected char[] encrypt = new char[AlphaSize];
  protected char[] decrypt = new char[AlphaSize];

  public text() {
    for (int i = 0; i < AlphaSize; i++)
      encrypt[i] = alpha[(i + 3) % AlphaSize];
    for (int i = 0; i < AlphaSize; i++)
      decrypt[encrypt[i] - 'a'] = alpha[i];
  }

  public String Encryption(String secret) {
    char[] mess = secret.toCharArray();
    for (int i = 0; i < mess.length; i++)
      if (Character.isUpperCase(mess[i]))
        mess[i] = encrypt[mess[i] - 'a'];
    return new String(mess);
  }

  public String decryption(String secret) {
    char[] mess = secret.toCharArray();
    for (int i = 0; i < mess.length; i++)
      if (Character.isUpperCase(mess[i]))
        mess[i] = decrypt[mess[i] - 'a'];
    return new String(mess);
  }
}

Второй класс

package so4717814;

import java.util.Scanner;

public class TextApp {
  public static void main(String[] args) {

    text T1 = new text();

    System.out.println();
    System.out.print("\n    ~WELCOME~\n");

    Scanner scanner = new Scanner(System.in);
    System.out.printf("\nPlease choose one:\n\n1-%s\n\n2-%s\n", "Encrypt Message", "Decrypt message");

    int choice = scanner.nextInt();

    switch (choice) {

    case 1:
      System.out.println("\nEnter your Message :\n ");
      String secret = scanner.next();
      System.out.printf("\n The Encryption is :\n");
      secret = T1.Encryption(secret);
      System.out.println();
      System.out.println(secret);
      System.out.println();

      break;

    case 2:
      System.out.println("\nEnter your message :\n ");
      String message = scanner.next();
      System.out.printf("\n The Decryption is :\n");
      message = T1.decryption(message);
      System.out.println();
      System.out.println(message);
      System.out.println();
      break;

    }

    System.out.println("\n\tThank you for useing my program\t\n\t\t ;)\n\n");

  }
}

1 Ответ

1 голос
/ 18 января 2011

Я думаю, что причина того, что ничего не меняется, заключается в том, что ваш цикл шифрования применяет преобразование шифрования только к заглавным буквам.Вы никогда не меняете символы в массиве mess, если это строчная буква, цифра, пунктуация и т. Д. Чтобы это исправить, попробуйте изменить логику шифрования для обработки всех типов символов, а не только заглавных.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...