Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
Заблокирован

Метод Полибия шифрование и дешифрование на JAVA

14.02.2014, 23:02. Показов 4864. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Как реализовать дешифровку слова в джаве?! и чтобы слова вводились пользователем?! Нашла в интернете такой вот код шифрования, а как сделать дешифровку? Выручайте! Вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 package com.sevak_avet;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
        //BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        
        //Encryption enc = new Encryption(reader.readLine());
        Encryption enc = new Encryption("Джава рулит!");
        System.out.println("Зашифрованное сообщение: "+enc.getEncText());
        
        Description desc = new Description(enc.getEncText());
        System.out.println("Расшированное сообщение: "+desc.getDescText());
    }
}
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
 package com.sevak_avet;
 
public class Encryption {
    private String text = "";
    private String encText = "";
    protected static  char[][] key = {{'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И'},
                                      {'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т'},
                                      {'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь'},
                                      {'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'ё'},
                                      {'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п'},
                                      {'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ'},
                                      {'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' ', '.', ',', ')'},
                                      {'(', '?', '!', '_', '@', '1', '2', '3', '4', '5'},
                                      {'6', '7', '8', '9', '0', '*', '/', '+', '-', '\\'}};
    
    public Encryption(String text){
        //System.out.println("Запущен конструктор Ecnryption();");
        //this.text = text.toUpperCase();
        //System.out.println(this.text);
        
        this.text = text;
        findInArr(this.text);
        //finalEncrypt(this.text);
    }
    
    public String getEncText(){
        //System.out.println("Запущен метод getEncText();");
        return this.encText;
    }
    
    public void findInArr(String text){
        //System.out.println("Запущен метод findInArr();");
        
        for(int i=0; i<text.length(); ++i){
            this.encText += charIn(text.charAt(i));
            //System.out.println(text.charAt(i)+" -  "+this.encText);
        }
    }
    
    /*public void finalEncrypt(String text){
        String spaceDel = text.replaceAll(" ", "");
        System.out.println(spaceDel);
        String rez = "";
        
        rez += spaceDel.charAt(spaceDel.length());
        
        for(int i=0; i<(spaceDel.length()-1); ++i){
            rez+=spaceDel.charAt(i+1);
        }
        
        this.encText = rez;
    }*/
    
    public String charIn(char c){
        //System.out.println("Запущен метод charIn();");
        String rez = "";
        for(int i=0; i<key.length; ++i){
            for(int j=0; j<key[i].length; ++j){
                if(key[i][j] == c){
                    rez = rez + (i+""+j+" ");
                }
            }   
        }
        //System.out.println(rez);
        return rez;
    }
}
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
package com.sevak_avet;
 
public class Description{
    public String parseText;
    public String descText;
    
    public Description(String text){
        delAllSpace(text);
        outString(this.parseText);
    }
    
    public String getDescText(){
        return this.descText;
    }
    
    public void delAllSpace(String s){
        String rez = s.replaceAll(" ", "");
        this.parseText = rez;
        //System.out.println(this.parseText);
    }
    
    public String outString(String s){
        String rez = "";
        int x, y;
        
        for(int i=0; i<s.length(); ++i){
            if(i%2 == 0){
                x = Integer.parseInt(String.valueOf(s.charAt(i)));
                y = Integer.parseInt(String.valueOf(s.charAt(i+1)));
 
                //System.out.println(s.charAt(i)+" "+i);
                //System.out.println(x+" "+y);
                
                rez += Encryption.key[x][y];
            }
        }
        
        this.descText = rez;
        return rez;
    }
    
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2014, 23:02
Ответы с готовыми решениями:

С# МЕТОД ПОЛИБИЯ шифрование и дишифрование \ ввод слова в консоли
Доброе время суток, форумчане! Помогите пожалуйста! Выручайте! На С# раньше не приходилось работать, поэтому я новичок! Как преобразить...

Java RC4 + CRC16 шифрование/дешифрование
Есть код который дишфрует пакет нужно написать код который будет шифровать данный пакет обратно Вот код package decrypt; ...

Шифрование/дешифрование решеткой (метод Кардано)
Подскажите пожалуйста, как сделать обратное действие (DeCrypt), расшифровать, т.е. собрать все 1 и выложить их в строку, должно получится...

17
15.02.2014, 00:04

Не по теме:

Цитата Сообщение от altuwa Посмотреть сообщение
package com.sevak_avet
вот он знает :D

0
Java, C# - Expert
 Аватар для IceSqueez
69 / 69 / 12
Регистрация: 09.08.2011
Сообщений: 284
15.02.2014, 01:00
Цитата Сообщение от altuwa Посмотреть сообщение
Как реализовать дешифровку слова в джаве?
дешифровку чего ?? Если этого типа шифрования что вы предоставили, то как-бы...
Цитата Сообщение от altuwa Посмотреть сообщение
Java
1
2
Description desc = new Description(enc.getEncText());
System.out.println("Расшированное сообщение: "+desc.getDescText());
А что-бы ввести строку с консоли надо:
Java
1
2
3
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
Encryption enc = new Encryption(line);
0
15.02.2014, 03:13

Не по теме:

пятничный вброс? :good:

0
Заблокирован
15.02.2014, 08:04
IceSqueez, Насколько я понял слова должно вводиться пользователем и оно должно шифроваться. Что уже реализовано. Задача стоит в том, чтобы таким же способом пользователь должен был иметь возможность вводить определенное количество цифр через клавиатуру и оно расшифровалось! Например пользователь ввел 11 23 24 44 и в результате вышло бы слова АЛМа. Мне интересно как бы вы решили эту непростую задачу? Вижу вы знающий человек! =)

Добавлено через 9 минут
Цитата Сообщение от Nurzone Посмотреть сообщение
IceSqueez, Что уже реализовано.
Пардон, просмотрел код и понял, что частично реализован! так как пользователь не может ввести слова для шифрования! Думаю тема актуально! Сам я в джаве только пару недель и самому очень интересно!!!
0
Заблокирован
15.02.2014, 08:10  [ТС]
IceSqueez, Я не поняла куда именно надо поставить ваш код. А как можно сделать, чтобы пользователь вводил слова через клавиатуру в консоли и оно шифровалось?
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
15.02.2014, 14:33
verylazy,

Не по теме:

бывает ;) у меня там вроде сэмплы были

0
Заблокирован
15.02.2014, 14:58  [ТС]
Севак, я нашла ваш код, но мне нужна было именно чтобы пользователь вводил текст в консоли через клавиатуру. Есть такое задание и ваш код одно их первых что появилось в интернете, разбирая его я поняла что оно не совсем подходит, могу ли я реализовать ввод текста через клавиатуру в консоли? Я лишь пару недель занимаюсь на джаве.
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
15.02.2014, 15:51
Java
1
https://github.com/SevakAvet/Polybous/blob/master/src/com/sevak_avet/Main.java
Вот, использовать так:
1) вести строку на русском
2) скопировать зашифрованную строку (последовательность чисел)
3) вставить
4) ???
5) увидеть исходный текст!
1
Заблокирован
15.02.2014, 16:25  [ТС]
Севак, спасибо! вышло красиво! правильно расшифровывает введенный код, но почему то буквы не шифруется, шифрует только цифры... а как реализовать, что бы шифровались и введенные буквы?! подскажите, пожалуйста =)
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
15.02.2014, 16:51
altuwa,
Цитата Сообщение от Севак Посмотреть сообщение
1) вести строку на русском
У меня все шифрует, ну или добавьте в табличку свои символы (английский алфавит), но учтите, что не надо делать таблицу больше 10*10, ибо надо будет немного переписать программу
1
Заблокирован
15.02.2014, 17:27  [ТС]
Севак, сломала голову..не шифрует русские буквы, шифрует только цифры, а расшифровывает все правильно!
Вот эту часть из программы я удалила, так как она ее не читает и не запускается. Может из за этого буквы не шифруется?
Java
1
2
import com.sevak_avet.Polybius.Decryption;
import com.sevak_avet.Polybius.Encryption;
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
15.02.2014, 17:33
удалили импорты классов, которые делают всю работу
как же оно у вас работает?)
1
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
15.02.2014, 17:34
Вот, у меня работает
Миниатюры
Метод Полибия шифрование и дешифрование на JAVA  
1
Заблокирован
15.02.2014, 18:02  [ТС]
Севак, а вы код в классах Encryption и Description не изменяли? Только в Main ведь немного преобразовали? Классы Encryption и Description переместила в пакет com.sevak_avet.Polybius, и теперь программа ее читает; но до сих пор шифрует только цифры и символы...
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
15.02.2014, 18:17
altuwa, подкорректировал немного, но на работу программы это не должно было повлиять, скачайте версию с гитхаба и попробуйте запустить
1
Заблокирован
15.02.2014, 23:35  [ТС]
Севак, Спасибо ОГРОМНОЕ вам! Все получилось! Запустила через Java Eclipse, теперь все символы, русские буквы шифрует и дешифрует правильно=)
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
16.02.2014, 12:44
altuwa, не стоит благодарности
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2014, 12:44
Помогаю со студенческими работами здесь

Шифрование / дешифрование (метод перестановки символов)
Здравствуйте.проблема такая:по варианту дали ключ и метод шифрования.похожие темы нашел но не то(( вернее начало нашел тут...

Дешифрование Полибия
Как сделать так чтобы он пропускал пробел и делал дешифр далее? type Tfirst = '0' .. '4'; Tsecond = '0' .. '6'; const ...

Квадрат Полибия.Шифрование
Нужно было сделать так, чтобы программа шифровала сообщение из текстового файла при помощи квадрата Полибия.Однако, у меня постоянно...

Шифрование квадратом Полибия
Шифрование квадратом Полибия. Допустим, шифрую слово СЕЛДОН. Должно получиться зашифрованное сообщение 35 16 25 15 32 31, но выдает 15 16...

Шифрование с использованием квадрата Полибия
Здравствуйте! Помогите, пожалуйста, выполнить задание. Программу нужно сделать в Window Forms. Реализовать в программе шифрование и...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru