Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
DemonW
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 3
1

Шифрование текстовой информации

25.03.2019, 17:38. Просмотров 1632. Ответов 6

Начал изучать java(под мобильные приложения), вот нашёл задачу, реализовать алгоритмы шифрования текстовой информации (методы: квадрата Полибия, Атбаш, Льюиса) Цезаря то я понял как делать а с этими немного завис.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2019, 17:38
Ответы с готовыми решениями:

Фильтрация текстовой информации, подаваемой на вход (аналог grep)
В общем после процедурного С++ начали изучать Объектно ориентированную Джаву и первая задача...

Из Паскаля в Си++. Шифрование текстовой информации
Шифрование текстовой информации случайной заменой символов. Нужно из Паскаля перевести в С++....

Шифрование текстовой информации методом "Гронсфельд"
Доброго времени суток друзья!! Извиняюсь за нескромный вопрос, может возможно у кого нибудь...

Обработка текстовой информации С++
Вот значит добрые люди моя программа. Программа в строке символов должна находить первую и...

Кодирование текстовой информации
Автоматическое устройство осуществило перекодировку информационного сообщения на русском языке,...

6
ArtemFM
735 / 482 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
25.03.2019, 18:32 2
всё ж вроде просто, как я смотрю?
0
Aviz__
875 / 667 / 165
Регистрация: 17.02.2014
Сообщений: 3,933
25.03.2019, 18:40 3
Цитата Сообщение от DemonW Посмотреть сообщение
квадрат Полибия
не на много сложнее Цезаря https://ru.wikipedia.org/wiki/Квадрат_Полибия
0
DemonW
0 / 0 / 0
Регистрация: 25.03.2019
Сообщений: 3
25.03.2019, 18:42  [ТС] 4
Я не знаю, вот например Атбаша я розбирал, то питался в цикле сделать проверку позицию каждого елемента в строке, а потом брать по формуле находить позицию с второй строки. Но у меня не получилось его правильно реализовать
0
Aviz__
875 / 667 / 165
Регистрация: 17.02.2014
Сообщений: 3,933
25.03.2019, 18:45 5
DemonW, попроси получше ArtemFM, он сделает, 100 пудово!
0
iSmokeJC
Модератор
Эксперт Java
2827 / 1461 / 666
Регистрация: 21.10.2017
Сообщений: 4,484
25.03.2019, 18:58 6
Лучший ответ Сообщение было отмечено DemonW как решение

Решение

Цитата Сообщение от DemonW Посмотреть сообщение
Атбаша
Java
1
2
3
4
5
6
7
8
9
10
11
public String code(String s) {
        StringBuilder result = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (Character.isLetter(c)) {
                result.append(Character.isLowerCase(c) ?
                        (char) ('z' + 'a' - c) : (char) ('Z' + 'A' - c));
            } else result.append(c);
        }
        return result.toString();
    }
1
ArtemFM
735 / 482 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
25.03.2019, 19:10 7
Лучший ответ Сообщение было отмечено DemonW как решение

Решение

пример из википедии по методу 2:

https://ru.wikipedia.org/wiki/%D0%9A...B1%D0%B8%D1%8F

Оптимизируешь код...на скорую руку писал:

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
import java.util.Arrays;
 
public class SquarePolibiya {
    private static final char[][] TABLE = {
            {'A', 'B', 'C', 'D', 'E'},
            {'F', 'G', 'H', 'I', 'K'},
            {'L', 'M', 'N', 'O', 'P'},
            {'Q', 'R', 'S', 'T', 'U'},
            {'V', 'W', 'X', 'Y', 'Z'}
    };
 
    public static void main(String[] args) {
        String text = "sometext";
        System.out.println(encoding(text));
    }
 
    public static String encoding(String text) {
        StringBuilder sb = new StringBuilder();
        if (text != null) {
            int[] vertical = new int[text.length()];
            int[] horizontal = new int[text.length()];
            int count = 0;
            for (int index = 0; index < text.length(); index++) {
                for (int i = 0; i < TABLE.length; i++) {
                    char symbol = Character.toLowerCase(text.charAt(index));
                    for (int j = 0; j < TABLE[i].length; j++) {
                        if (symbol == Character.toLowerCase(TABLE[i][j])) {
                            vertical[count] = j + 1;
                            horizontal[count++] = i + 1;
                        }
                    }
                }
            }
            vertical = Arrays.copyOf(vertical, count);
            horizontal = Arrays.copyOf(horizontal, count);
 
            int[] digits = new int[vertical.length * 2];
            for (int i = 0; i < vertical.length; i++) {
                digits[i] = vertical[i];
                digits[vertical.length + i] = horizontal[i];
            }
 
            for (int i = 0; i < digits.length - 1; i += 2) {
                int v = digits[i];
                int h = digits[i + 1];
                sb.append(TABLE[h - 1][v - 1]);
            }
        }
        return sb.toString();
    }
}
1
25.03.2019, 19:10
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2019, 19:10

Обработка текстовой информации c#
Дан текс состоящий не менее из 10 слов .напечатать все слова из текста,отличные от слова hello

Обработка текстовой информации
Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы b. Надо...

обработка текстовой информации
Люди, помогите решить задачу, очень срочно нужна: выяснить, имеются ли в заданном тексте...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru