С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 26.05.2015
Сообщений: 124

Шифрование текста с использованием слогов

22.11.2016, 14:00. Показов 1812. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте, имеется метод шифрования, в котором открытый объект(текст) делится на слоги (создается множество элементов), затем из этого множества удаляются все повторяющиеся слоги, в итоге чего создается новое множество, в котором имеются не повторяющиеся слоги. Создается ключ шифрования, в котором каждый слог из множества заменяется на другой слог из того же множества.
Пример:
Кликните здесь для просмотра всего текста

Среди языков программирования php является одним из самых актуальных языков.
И так создадим множество элементов:
M={Сре-ди я-зы-ков про-грам-ми-ро-ва-ния php яв-ля-ет-ся од-ним из са-мых ак-ту-аль-ных я-зы-ков. }
Теперь удалим из множества М повторяющиеся слоги:
M={Сре, ди, я, зы, ков, про, грам, ми, ро, ва, ния, php, яв, ля, ет, ся, од, ним, из, са, мых, ак,ту, аль, ных я-зы-ков(удалется). }
Создаем ключ (новые значения слогов тоже не должны повторяться)
Км={
Сре => я
ди => ков
я => зи
зы => сре
ков => ди
про => яв
грам => ро
ми => про
ро => грам
ва => php
ния => ми
php => ва
яв => ния
ля => ных
ет => ту
ся => мых
од => мя
ним => из
из => ак
са => ет
мых => ся
ак => од
ту => ним
аль => са
ных => аль
}
Зашифруем объект используя ключ
Яков зисреди явропрограмphpми ва нияныхтумых мяизак ется однимсааль.
Элементы, которые отсутствуют во множестве ставятся без изменения на свои места. (Знаки препинания, числа, спец.знаки и т.д).


Помогите пожалуйста написать скрипт.
Вот, что у меня получилось:

Кликните здесь для просмотра всего текста
PHP
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
<?
$text="Среди языков программирования php является одним из самых актуальных языков";
#char patterns
$RusA = "[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]";
$RusV = "[аеёиоуэюя]";
$RusN = "[бвгджзклмнпрстфхцчшщ]";
$RusX = "[йъь]";
 
#main ruller
$regs[] = "~(". $RusX . ")(" . $RusA . $RusA . ")~iu";
$regs[] = "~(". $RusV . ")(" . $RusV . $RusA  . ")~iu";
$regs[] = "~(". $RusV . $RusN . ")(" . $RusN . $RusV . ")~iu";
$regs[] = "~(". $RusN . $RusV . ")(" . $RusN . $RusV . ")~iu";
$regs[] = "~(". $RusV . $RusN . ")(" . $RusN . $RusN. $RusV . ")~iu";
$regs[] = "~(". $RusV . $RusN . $RusN . ")(". $RusN . $RusN . $RusV . ")~iu";
$regs[] = "~(". $RusX . ")(" . $RusA . $RusA . ")~iu";
$regs[] = "~(". $RusV . ")(" . $RusA . $RusV  . ")~iu";
 
 
foreach($regs as $cur_regxp) {
        $text = preg_replace( $cur_regxp , "$1 $2" , $text);
}
#var_dump($text);
$textX = $text;
# попыталься создать ключ, но элементы массива $text всеравно повторяются
for ($i=0; $i<count($text); $i++){
  shuffle($text);
   if ($text[$i]!==$textX[$i]){
      echo "$textX[$i] => $text[$i] ";
}
}
 
?>


Помогите пожалуйста написать скрипт с этим методом шифрования.
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2016, 14:00
Ответы с готовыми решениями:

Шифрование текста на PHP
Нужно реализовать шифрование текста на PHP с использованием алгоритма RSA. Код: &lt;?php function encode_msg ($text) { $p = 3;...

простое шифрование информации с превращение текста в промежуточный код
помогите пожалуйста с алгоритмом . допустим имеем список c энным количеством фраз, необходимо сравнить слова списка номер один со словами...

Шифрование текста перестановкой с использованием таблицы
Составить программу, шифрующую исходный текст перестановкой с помощью таблицы. Строковый тип данных. Обработка строк.

4
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
22.11.2016, 15:32
PHP
1
2
3
4
5
6
$_ ="Сре-ди я-зы-ков про-грам-ми-ро-ва-ния php яв-ля-ет-ся од-ним из са-мых ак-ту-аль-ных я-зы-ков.";
$__ = array_unique(preg_split("~\-| |\.~ui",$_,-1,PREG_SPLIT_NO_EMPTY));
$shuffle = $__;
shuffle($shuffle);
$___ = array_combine($__,$shuffle);
    print_r($___);
1
1 / 1 / 0
Регистрация: 26.05.2015
Сообщений: 124
22.11.2016, 15:59  [ТС]
Цитата Сообщение от Azdeman Посмотреть сообщение
PHP
1
$_ ="Сре-ди я-зы-ков про-грам-ми-ро-ва-ния php яв-ля-ет-ся од-ним из са-мых ак-ту-аль-ных я-зы-ков."; $__ = array_unique(preg_split("~\-| |\.~ui",$_,-1,PREG_SPLIT_NO_EMPTY)); $shuffle = $__; shuffle($shuffle); $___ = array_combine($__,$shuffle); print_r($___);
Спасибо, за помощь, а как быть с пробелом? В смысле в тексте пробел встречается, а в зашифрованом тексте его нет.
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
22.11.2016, 16:10
За название переменных мне конечно нужно оторвать руки, но я не знаю как их назвать, быстро писал.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$_ ="Сре-ди я-зы-ков про-грам-ми-ро-ва-ния php яв-ля-ет-ся од-ним из са-мых ак-ту-аль-ных я-зы-ков.";
$__ = array_unique(preg_split("~\-| |\.~ui",$_,-1,PREG_SPLIT_NO_EMPTY));
$shuffle = $__;
shuffle($shuffle);
$___ = array_combine($__,$shuffle);
    print_r($___);
$____ = explode(" ",$_);
$str;
$i=0;
print_r($____);
array_walk($___,function($v,$k) use (&$str,&$i,$____){
        $str .= $v;
        preg_match("~([\\wа-я]+)$~ui",$____[$i],$m);
            if($m[1]==$k){
                $str.=' ';
                $i++;
            } 
});
echo $str;
1
1 / 1 / 0
Регистрация: 26.05.2015
Сообщений: 124
22.11.2016, 21:29  [ТС]
Цитата Сообщение от Azdeman Посмотреть сообщение
За название переменных мне конечно нужно оторвать руки, но я не знаю как их назвать, быстро писал.
да это не проблема, все равно спасибо, все работает, но, а , если там будут другие символы? Кроме пробела, с ними как быть? Когда, я ставлю в текст например ;, то все пробелы исчезают.

Добавлено через 34 минуты
И еще один момент, в случае модификации метода, требуется зашифровать и сам пробел, т.е. он заменяется слогами, как и другие слоги, как быть в этом случае?

Добавлено через 2 минуты
Кстати я изменил переменные и вот, что получилось:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$slogi ="Сре-ди я-зы-ков про-грам-ми-ро-ва-ния php яв-ля-ет-ся од-ним из са-мых ак-ту-аль-ных я-зы-ков. 1";
$mnojestvo_el = array_unique(preg_split("~\-| |\.~ui",$slogi,-1,PREG_SPLIT_NO_EMPTY));
$shuffle = $mnojestvo_el;
shuffle($shuffle);
$key = array_combine($mnojestvo_el,$shuffle);
 
echo 'Ключ: <pre>';   
   print_r($key);
 
 
$simvoli = explode(" ",$slogi);
$str;
$i=0;
print_r($simvoli);
array_walk($key,function($v,$k) use (&$str,&$i,$simvoli){
        $str .= $v;
        preg_match("~([\\wа-я])$~ui",$simvoli[$i],$m);
        
            if($m[1]==$k){
                $str.=' ';
            
         }
});
echo $str;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2016, 21:29
Помогаю со студенческими работами здесь

Выполнить шифрование и дешифрование текста с использованием ассоциативных магических квадратов
Помогите сделать, очень надо. Не понимаю как. Выполнить шифрование и дешифрование текста с использованием ассоциативных магических...

Разметка текста (перенос слогов/абревиатур)
Здравствуйте! Какими символами или действиями можно организовать отмену переноса слова. А именно: Есть аббревиатура &quot;ИФНС...

Вывести слова заданного текста, состоящие из 2-х и более слогов
Дан текст из строчных русских букв: между словами – пробел, после по-следнего слова – точка. Вывести слова, состоящие из двух и более...

Определить количество слов текста, состоящих из одного и двух слогов
Привет! Помогите решить задачу. В тексте все слова разделены пробелами или знаками препинания. Определить количество слов этого...

Шифрование текста, табличная замена текста
Один из простейших способов шифровки текста состоит в табличной замене каждого символа другим символом - его шифром. Выбрать некоторую...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru