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

Криптография,шифрование

17.04.2016, 17:34. Показов 2280. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с задачей
Чтобы зашифровать текст из 121 буквы, его можно записать в квадратную матрицу порядка 11 по строкам, а затем прочитать по спирали, начиная с центра (т. е. с элемента, имеющего индексы 6, 6 ).
а) Зашифровать данный текст.
б) Расшифровать данный текст.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.04.2016, 17:34
Ответы с готовыми решениями:

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

Частотный анализ, криптография
Здравствуйте! Пишу курсовую работу по алгоритму Шифрующие таблицы с двойной перестановкой по числовому ключу. Алгоритмы шифрования и...

RSA шифрование
Здравствуйте. Нашел реализацию RSA для Java в интернете. Немного переделал класс, добавив getters и setters, а так же перенес инструкции из...

1
 Аватар для RedPatrick
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
18.04.2016, 15:31
Лучший ответ Сообщение было отмечено man777 как решение

Решение

man777, Вот кодирующий код) Работать надо, декодирующий не успел сделать.

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
public class Codec {
 
public String codeString (String input){
    char[][] matrix = new char[11][11];
 
    iterateCodeMatrix (matrix, 5, 5, true, 0, input);
    
    String output = "";
    for (int i = 0; i < matrix.length; i++){
        for (int j = 0; j < matrix[0].length; j++){
            output += matrix[j][i];
        }
    }
    
 
    return output;
}
 
 
private void iterateCodeMatrix (char[][] matrix, int x, int y, boolean goRight, int length, String s){
    /* This recursive method fills the matrix this way:
     * (n is a number of an iteration)
     *  4 4 4 4 3
     *  4 2 2 1 3
     *  4 2 0 1 3
     *  4 2 3 3 3
     *  4 5 5 5 5 
     */   
    
    int iterator = 0;
    
    // if first iteration
    if (length == 0){
        matrix[x][y] = s.charAt(iterator);
        iterateCodeMatrix(matrix, x + 1, y, goRight, length + 1, s.substring(1));
    }
    //if last iteration
    else if (length == matrix.length){
        for (int i = 1; i < matrix.length; i++){
            matrix[i][y] = s.charAt(iterator);
            iterator++;
        }
        
        for (int i = 0; i < matrix.length; i++){
            for (int j = 0; j < matrix[0].length; j++){
                System.out.print(matrix[j][i] + " ");
            }
            System.out.print("\n");
        }
    }
    // any other iteration
    else {
        if (goRight){
            //go right
            for (int i = 0; i < length; i++){
                matrix[x + i][y] = s.charAt(iterator);
                iterator++;
            }
            //go up
            for (int j = 0; j < length; j++){
                matrix[x + length - 1][y - j - 1] = s.charAt(iterator);
                iterator++;
            }
            //next iteration
            iterateCodeMatrix(matrix, x + length - 2, y - length, !goRight, length + 1, s.substring(length * 2));
        }
        else if (!goRight){
            //go left
            for (int i = 0; i < length; i++){
                matrix[x - i][y] = s.charAt(iterator);
                iterator++;
            }
            //go down
            for (int j = 0; j < length; j++){
                matrix[x - length + 1][y + j + 1] = s.charAt(iterator);
                iterator++;
            }
            //next iteration
            iterateCodeMatrix(matrix, x - length + 2, y + length, !goRight, length + 1, s.substring(length * 2));
        }
    
   }
    
}
Тест:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Main {
 
    public static void main(String[] args) throws IOException {
        Codec codec = new Codec();
        String codedString = codec.codeString("Chimes sing Sunday morn todays the day shes sworn"
                + " To steal what she never could own an race from this hole she calls home");
        System.out.println(codedString);
    }
}
s i h t   m o r f   e 
  s   t a h w   l a c 
h h a d   e h t   e a 
o e y a d n u S s t r 
l     y e m i   y s   
e n s   s C h g a   n 
  e h m   s i n d o a 
s v e o r n   t o T   
h e s   s w o r n   n 
e r   c o u l d   o w 
  c a l l s   h o m e 
siht morf e s tahw lachhad eht eaoeyadnuSstrl  yemi ys ens sChga n ehm sindoasveorn toT hes sworn ner could ow calls home
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2016, 15:31
Помогаю со студенческими работами здесь

Md5 Шифрование
Доброго вечера, подскажите пожалуйста, как текст String преобразовать в md5 на java? Нужно для защиты паролей. Например есть у меня...

Шифрование CipherOutputStream
Почему при использовании CipherStream-а при записи он обрубает данные, например, для DES, если длина файла не кратна 8, то он обрубается и...

Java SE шифрование
Пожалуйста, помогите решить, уже давно сижу над этим... Создайте программу шифрования и последующего дешифрования числа типа int: в ...

RSA шифрование
Всем привет. Можете пожалуйста скинуть ссылку, где нормальная реализация RSA шифрования на java. Я искал, но находил всягую дичь. Нужно...

Шифрование методом Цезаря
На Java Eclipse нужна програмка которая бы шифровала вводимое слово методом Цезаря,то есть алфавит сдвигался бы на столько цифр сколько...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru