Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Програма для сдвига символов на ную позицию.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. [img=Kлюч может быть короче текста по этому ограничим его изменения от 0 символа в строке кей[i] до кей[a.size] при пересечении порога кей[a.size] вернем его значения к 0 символу строки с помощью key[i] mod (m+1).m +1 использум поскольку когда номер символа ключа будет совпадать с длиной строки, мы вернём значение 0 символа в строке не учтя последний.Т.е кей[a.size]=7, b[7].7 mod 7=0. При добавлении 1 к длине кей[a.size].7 mod 8=1.При выходе за пределы количества символов строке ключа 8 mod 8=0 .Т.е 0 символа строки кей[0].] Код: plaintext 1. Приведём нумерацию символов русского алфавита к классическому нумерованию (только для верхнего регистра)В ASCII буква А имеет код 128 при классической нумерации от 0 до 31 Код: plaintext 1. По скольку результат сложения может выйти за пределы 31 мы должны возвращать его в эту область (a[i]+b[i])mod32.Почему берём 32, а не 31.Буква я имеет код 31.Произведём сдвиг буквы Ю на 1 символ.30+1mod 31=0.Вместо буквы я получим букву А. Код: plaintext 1. 2. Внимание вопрос.При длине ключа меньшей длине водимого текста. Текст АБВГД Ключ 123 Получаем БГЕРЕ Символы Р,Е не соответствует своим реальным значениям при сдвиге.Символ Р получается при сдвиге на мусорное значения позиции.Е при сдвиги на первый символ ключа ,т.е на 1цу. Хотя по идее int b=key[i]%(m+1) при таком раскладе должен возвращать значение 0,т.е key[i=0] ,что соответствует первому символу в строке кей. Не ужели нумерация символов в string начинается с 1деницы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 15:49 |
|
||
|
Програма для сдвига символов на ную позицию.
|
|||
|---|---|---|---|
|
#18+
Кроки, for (i=0;i<<a.size();i++){ //Проиведем сдвиг символом в строке "а" на значение ключа. чего куда производим? тут ты умножаешь i на 2 в степени размера строки a. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 16:34 |
|
||
|
Програма для сдвига символов на ную позицию.
|
|||
|---|---|---|---|
|
#18+
MasterZiv, for (i=0;i<<a.size();i++){ int b=key[i]%(m+1); int f=a[i]-128; int g=(a[i]+b[i])%32; c.push_back(char(g[i]+128)); } По завершению цикла мы получаем сдвиг.Комментарий писал для всего цикла в целом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 16:42 |
|
||
|
Програма для сдвига символов на ную позицию.
|
|||
|---|---|---|---|
|
#18+
Кроки, поясни. каждый оператор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 18:08 |
|
||
|
Програма для сдвига символов на ную позицию.
|
|||
|---|---|---|---|
|
#18+
Под сполерами все объяснения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 18:45 |
|
||
|
Програма для сдвига символов на ную позицию.
|
|||
|---|---|---|---|
|
#18+
MasterZiv,если коротко то.Берём первую буквы из строки например А и ключ 1.её код равен 128.Переводим её на расположение в классическом алфавите шифрования f=128-128.Её код становится 0.Рассчитываем сдвиг.Для определения на сколько выполняем сдвиг смотрим в ключ и находим цифру чья позиция в строке совпадает с позицией буквы.Однако ключ бывает короче сообщения.По этому для определения соответствий используем формулу.номер цифры ключа в строке взятый по модулю длина строки +1 b[i]=key.syze %(m+1).+1 используем поскольку при длине ключа в пять символов 1 2 3 4 5 нам необходимо вернуть после выхода за строку к первому символу.Если не прибавлять единицу то вместо 5 символ ключа будет выбран первый.Далее мы определяем позицию буквы при сдвиге как с=f+b. c = 0 +1.Однако для віводам символа Б необходимо вернуть его в юникод символ Б равен с+128. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2015, 19:45 |
|
||
|
Програма для сдвига символов на ную позицию.
|
|||
|---|---|---|---|
|
#18+
Кроки, ок попробуй заменить for (i=0;i<<a.size();i++){ на for (i=0;i<a.size();i++){ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2015, 00:36 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38934262&tid=2019031]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 162ms |

| 0 / 0 |
