Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/41: Рейтинг темы: голосов - 41, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 4

Оконное приложение "Шифр Тритемиуса"

05.03.2013, 20:40. Показов 8366. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Яву изучаю недавно и недавно получил такое задание, как написать оконное приложение которое шифрует и дешефрует
текст с помощью шифра Тритемиуса!

Консольное приложение написал(Код ниже), а вот на оконное не хватает пока знаний.

Очень надеюсь на вашу помощь!)


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import java.io.IOException;
import java.util.Scanner;
 
 
public class Tritemius {
 
    public static void main(String[] args) throws IOException {
        Scanner textscan = new Scanner(System.in);// Ввод текста
        System.out.println("Введите текст: ");
        String text = textscan.nextLine();
        char OpenText[] = text.toCharArray();
        
        Scanner intscanA = new Scanner(System.in);
        System.out.println("Введите ключ A: ");
        int A = intscanA.nextInt();
        
        Scanner intscanB = new Scanner(System.in);
        System.out.println("Введите ключ B: ");
        int B = intscanB.nextInt();
        
        Scanner intscanC = new Scanner(System.in);
        System.out.println("Введите ключ С: ");
        int C = intscanC.nextInt();
        
        char choice;
        do{
            System.out.println("Возможности программы: ");
            System.out.println("         1.Шифрование.");
            System.out.println("         2. Дешифрование.");
            System.out.println("         3. Справка.");
            System.out.println("Выберите интересующий пункт.");
            choice = (char) System.in.read();
        }while(choice < '1' || choice > '3' );
        
        if(choice == '1'){
            if(A>=0)                                 //Шифрование
                if(B>=0)
                    if(C>=0){
            for(int i=0;i<OpenText.length;i++){
                int k = A*(i*i) + B*i + C;
                int L = ((OpenText[i]) + k)%65536;
                char E = (char) L;
                
                System.out.print(E);
                }
            }
                    else System.out.println("Неверный ключ C! Убедитесь  в правильности ввода ключа!");
                else System.out.println("Неверный ключ B! Убедитесь в правильности ввода ключа!");
            else System.out.println("Неверный ключ A! Убедитесь в правильности ввода ключа!");
        }
        
        else if(choice =='2') {
            if(A>=0)                                  // Дешифрование
                if(B>=0)
                    if(C>=0){
            for(int i=0;i<OpenText.length;i++){
                int k = A*(i*i) + B*i + C;
                int La = ((OpenText[i]) - k);
                while(La<0){ La+=65536;}
                int L=La%65536;
                char E = (char) L;
                
                System.out.print(E);
                }
            
                    }
            else System.out.println("Неверный ключ C! Убедитесь в правильности ввода ключа!");
                else System.out.println("Неверный ключ B! Убедитесь в правильности ввода ключа!");
            else System.out.println("Неверный ключ A! Убедитесь в правильности ввода ключа!");
        }
        else if(choice == '3') System.out.println(" Ключи A,B и С не должны быть отрицательными!");
 
    }
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2013, 20:40
Ответы с готовыми решениями:

Как запустить оконное приложение?
Как запустить оконное приложение, автономно? Т.е. без загрузки его в качестве апплета из HTML-страницы?

JAVA Оконное приложение
Собственно: не работает половина логики прописанная в кнопке Total и Convert, не хочет считать налог, конвертировать валюту и т.д., т.п....

Как в Intellij IDEA можно дебажить оконное приложение?
Собственно вопрос задан в заголовке. Пишу программу с помощью SWING и вот в какие-то моменты программа должна что-то делать, но ничего не...

28
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
22.05.2013, 18:44
Студворк — интернет-сервис помощи студентам
удачи Катя, если это ваше настоящее имя

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
package trithemius;
 
import java.text.DecimalFormat;
import javax.swing.text.DefaultFormatterFactory;
import javax.swing.text.NumberFormatter;
 
public class Gronsfeld extends javax.swing.JFrame {
 
    public Gronsfeld() {
        initComponents();
        keyField.setFormatterFactory(new DefaultFormatterFactory(new NumberFormatter(new DecimalFormat("0"))));
    }
    // ваша логика...
    private static char[] crypt(char[] achText, int[] achKey, boolean encrypt) {
        char[] result = new char[achText.length];
        int posKey = 0;
        for (int i = 0; i < achText.length; i++) {
            result[i] = getNextLetter(achText[i], encrypt ? achKey[posKey++]
                    : (-1) * achKey[posKey++]);
            if (posKey == achKey.length) {
                posKey = 0;
            }
        }
        return result;
    }
 
    private static char getNextLetter(char c, int i) {
        c = (char) (c + i);
 
        if (c < 'A') {
            c = (char) (c + 'z' - 'A' + 1);
        }
        if (c > 'z') {
            c = (char) (c - 'z' + 'A' - 1);
        }
        return c;
    }
    // ... закончилась и началась магия
    
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {
 
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        textField = new javax.swing.JTextArea();
        jScrollPane2 = new javax.swing.JScrollPane();
        deField = new javax.swing.JTextArea();
        jScrollPane3 = new javax.swing.JScrollPane();
        enField = new javax.swing.JTextArea();
        jButton1 = new javax.swing.JButton();
        keyField = new javax.swing.JFormattedTextField();
 
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
 
        jLabel1.setText("Key:");
 
        jLabel2.setText("Text:");
 
        jLabel3.setText("Encrypt:");
 
        jLabel4.setText("Decrypt:");
 
        textField.setColumns(20);
        textField.setRows(3);
        jScrollPane1.setViewportView(textField);
 
        deField.setEditable(false);
        deField.setColumns(20);
        deField.setRows(3);
        jScrollPane2.setViewportView(deField);
 
        enField.setEditable(false);
        enField.setColumns(20);
        enField.setRows(3);
        jScrollPane3.setViewportView(enField);
 
        jButton1.setText("Go!");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel4)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 628, Short.MAX_VALUE)
                            .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING))
                                .addGap(0, 0, Short.MAX_VALUE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                .addComponent(keyField)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton1)))
                        .addContainerGap())))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(keyField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel4)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
 
        pack();
    }// </editor-fold>                        
 
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String strKey = keyField.getText();
        Integer key = Integer.valueOf(strKey);
 
        int[] achKey = new int[(int) Math.log10(key) + 1];
        for (int i = achKey.length - 1; i >= 0; i--) {
            achKey[i] = key % 10;
            key = key / 10;
        }
 
        char[] achText = textField.getText().toCharArray();
        char[] achResult = crypt(achText, achKey, true);
        char[] achDecrypt = crypt(achResult, achKey, false);
 
        enField.setText(String.valueOf(achResult));
        deField.setText(String.valueOf(achDecrypt));
    }                                        
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        new Gronsfeld().setVisible(true);
    }
    // Variables declaration - do not modify                     
    private javax.swing.JTextArea deField;
    private javax.swing.JTextArea enField;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JFormattedTextField keyField;
    private javax.swing.JTextArea textField;
    // End of variables declaration                   
}


Не по теме:

чего только не сделаешь лишь бы не писать диплом... а завтра нужно сдавать... :(

1
10 / 36 / 7
Регистрация: 04.03.2013
Сообщений: 184
22.05.2013, 19:11
Цитата Сообщение от AckiyBolt Посмотреть сообщение
чего только не сделаешь лишь бы не писать диплом... а завтра нужно сдавать...

Не по теме:

А у меня 10 июня защита :p

0
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
22.05.2013, 19:14
Цитата Сообщение от Freeman666 Посмотреть сообщение

Не по теме:

А у меня 10 июня защита :p

у меня тоже О_о
если тебе о чем-то говорит этот набор символов: зтв-71 - у меня плохие новости. завтра последний день сдачи подписанных и подшитых дипломов
0
10 / 36 / 7
Регистрация: 04.03.2013
Сообщений: 184
22.05.2013, 19:17
Цитата Сообщение от AckiyBolt Посмотреть сообщение
у меня тоже О_о
если тебе о чем-то говорит этот набор символов: зтв-71 - у меня плохие новости. завтра последний день сдачи подписанных и подшитых дипломов
У меня тоже Оо. Но только я сдам пятого числа, потому что я Арёл =)))
0
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
22.05.2013, 19:20
Цитата Сообщение от Freeman666 Посмотреть сообщение
меня тоже Оо. Но только я сдам пятого числа, потому что я Арёл =)))
видимо я тоже. но потому что я ленивая жопа
0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 16
23.05.2013, 00:12
человеческое спасибо настоящим мужчинам!
и за пожелания удачи тоже)
//и да, есть такая Катя42, но это не я)

СПАСИБО
0
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
23.05.2013, 00:59
ну мне наверное приятней будет думать что это была катя а не бородатый мужик
0
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 16
23.05.2013, 12:54
ах, не буду расстраивать, не мужик и не бородатый
0
23.05.2013, 14:55

Не по теме:

AckiyBolt - http://cs410128.vk.me/u174989215/a_c73ddafc.jpg

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.05.2013, 14:55

Шифр Тритемиуса
Ребята, всем привет. Я с питоном только начинаю, не судите строго. Есть задача, построить консольное приложение, которое в качестве...

Шифр Тритемиуса
привет ребятки! нужна программа Шифра Тритемиуса написанная java или C#( когда-то давно я немного их понимала и то на уровне...

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

шифр Тритемиуса
Здравствуйте, я здесь новичок...дали задание реализовать шифр Тритемиуса. Шифр Тритемиуса похож на шифр Цезаря, но отличается только...

Шифр Тритемиуса
помогите создать программу на тему шифр тритемиуса.....так то я в общем понял но если кто подробно объяснит буду благодарен Добавлено...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru