Расшифровка текста в формате Array (т.е. [47, 48, 49]) в исходное сообщение - PullRequest
0 голосов
/ 30 октября 2011

Я новичок в Java, я делаю программу шифрования в NetBeans и наткнулся на небольшую загадку, на которую либо нет ответа, либо я просто ищу не ту вещь. Теперь проблема в том, что я могу зашифровать свой текст и отобразить его, но я не могу расшифровать новый зашифрованный текст, который вы увидите. Взгляните:

public class Main extends javax.swing.JFrame 
{
    private void encryptBUTActionPerformed(java.awt.event.ActionEvent evt)       
    {                                           
        int encryptLength=textToBeEncrypted.getText().length();
        int[] anArray=new int[encryptLength];
        int key=Integer.parseInt((encryptKey.getText())+0);

        if(key<=0)
        {
            decryptTXT.setText(""+"INVALID KEY");
        }
        else
        {
            for(int i=0;i<encryptLength;i++)
            {
                int letter = encryptTXT.getText().toLowerCase().charAt(i);
                int letterCiphered= (letter-key);
                anArray[i]=letterCiphered;
            }

            String output=(Arrays.toString(anArray));
            decryptTXT.setText(output);
        }
    }                                          
}

Теперь давайте скажем, что ввод "abc", а мой ключ 5, тогда вывод будет выглядеть точно так: [47, 48, 49] Теперь, как бы я получить что-то в том же формате (то есть [ASCII, ASCII]) обратно в Оригинал сообщения? Справка была бы полезна, и, пожалуйста, попробуйте использовать простые понятия, так как я только начал программировать.

[Редактировать] Мне нужно знать, как сделать что-то вроде этого: http://www.cs.carleton.edu/faculty/adalal/teaching/f05/107/applets/ascii.html

Ответы [ 2 ]

0 голосов
/ 30 октября 2011

Предполагая, что вы используете только символы в диапазоне, где эта операция имеет смысл, вы можете просто объявить свой anArray как char[] вместо int[].

Тогда вы можете использовать String output = new String(anArray);чтобы получить ваш результат.

(Также обратите внимание, что алгоритм шифрования, подобный вашему, уже использовался Caesar и не имеет практической ценности для безопасности, поэтому, пожалуйста, не используйте что-то подобное в продуктивной среде.)

0 голосов
/ 30 октября 2011

Посмотрите в строку

int key=Integer.parseInt((encryptKey.getText())+0);

Я думаю, что может быть проблема.Вы вызываете «encryptKey.getText ()», который, вероятно, вернет String, а затем добавляете «0».В Java он вернет «YourString + 0». Поэтому, если ваша строка пуста, ваш ключ всегда будет содержать значение «0»

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