PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (59): В начало « ... 15 16 17 18 [19] 20 21 22 23 ... » В конец

> Найдено сообщений: 881
Vladimir Kheifets Отправлено: 13 Февраля, 2021 - 17:11:30 • Тема: Шифр Цезаря, PHP класс CaesarCipher • Форум: Прочее

Ответов: 3
Просмотров: 710
Добрый день!

Хотел бы продолжить обсуждение темы "Шифр Цезаря", начатую Aleri
в разделе "Вопросы новичков" и показать актуальныю версию класса CaesarCipher.
Предыдущая версия умела взламывать шифротекст двумя методами
BruteForceDecoding и DecodingByCharacterFrequency.

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

Теперь методы BruteForceDecoding и DecodingByCharacterFrequency
возвращают упрядоточенные по рейтингам варианты декодирования.
Это позволяет определять один наиболее достоверный вариант взлома шифротекста.
Для тестированиия добавлены частотный алвавиты - русский, английский,
немецкий и латинский, а также тестовые тексты на этих языках.
Постарюсь, сделать описание класса и выложу ссылку для скачивания.
Можете посмотреть демо версию здесь.

https://www.alto-booking.com/dem...SU/CaesarCipher/

Буду блогодарен за вопросы, замечания и предложения.

р.s. для тех, кто знает немецкий, в немецком тесте, текст 2 на баварском,
а текст 3 его перевод на немецкий.
Vladimir Kheifets Отправлено: 12 Февраля, 2021 - 11:33:06 • Тема: Файл txt, загрузка, массив, выборка • Форум: Вопросы новичков

Ответов: 8
Просмотров: 717
Rick_77 пишет:
Vladimir Kheifets пишет:
Rick_77 пишет:
Граждане знающие.
Существует ли шаблон для решения такой задачи:
- текстовый файл, в нём заголовок (текстовая информация);
- далее заголовок таблицы;
- и данные в таблице (числа).
Необходимо выбрать этот текстовый файл, спарсить его и записать в массив числа, для последующего оперирования цифр, а после выгрузить данные в экселевский файл.
Вот такой вот запрос.

Добрый день!
Существует много заготовок и готовых примеров,
про то как читать, парзить и сохранять,
но с начала желательно уточнить постановку задачи.
Начнём с того, что таблицы бывают, где угодо, но только не в тестовых файлах.
Уточните, пожалуста, структуру данных в этом файле, а ещё лучше покажите образец.
В каком Excel-формате (CSV, XLS... ) нужно сохранить файл?
Удачи!


Я не ошибся. Исходные данные ИМЕННО в текстовом файле. Шаблон привожу в прикреплённом файле. Это выгрузка из городской программы.
А сохранить необходимо в формате XLS.
Читал о том что нужны для этого библиотеки, но пока до них я не дошёл. Нужно решить первую часть - спарсить.


Покажите, пожалуйста, образец файла, не его шаблон.
Если очень секретный СС документ, замените данные на хххх.
Чтобы спарсить, необходимо увидеть, какие символы разделители колонок
в таблице, и.т.д
Vladimir Kheifets Отправлено: 11 Февраля, 2021 - 17:30:29 • Тема: Файл txt, загрузка, массив, выборка • Форум: Вопросы новичков

Ответов: 8
Просмотров: 717
Rick_77 пишет:
Граждане знающие.
Существует ли шаблон для решения такой задачи:
- текстовый файл, в нём заголовок (текстовая информация);
- далее заголовок таблицы;
- и данные в таблице (числа).
Необходимо выбрать этот текстовый файл, спарсить его и записать в массив числа, для последующего оперирования цифр, а после выгрузить данные в экселевский файл.
Вот такой вот запрос.

Добрый день!
Существует много заготовок и готовых примеров,
про то как читать, парзить и сохранять,
но с начала желательно уточнить постановку задачи.
Начнём с того, что таблицы бывают, где угодо, но только не в тестовых файлах.
Уточните, пожалуста, структуру данных в этом файле, а ещё лучше покажите образец.
В каком Excel-формате (CSV, XLS... ) нужно сохранить файл?
Удачи!
Vladimir Kheifets Отправлено: 10 Февраля, 2021 - 20:13:47 • Тема: Шифр Цезаря на php (?¿) • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1322
dcc0 пишет:
[Предположение: может быть, проблема с дешифрованием коротких слов решается добавлением лишних
символов к слову в начало, конец слова или, может быть, повторением самого слова.
P.S.
"суп из топора" нашёл, описанным ранее мной методом (сдвиг + поиск по словарю с дроблением слова). Картинку прикрепляю.
Интересно со словом "кот" и со словами из трёх букв в принципе; есть шанс найти прибавлением разных символов, но можно найти и ошибочный "корень".
Вот, что у меня получилось: шифрую слово "кот" ключом 9, получаю "учы".
Пробую расшифровать, повторив слово и добавив символы в начало и конец из него же "ччччччччччыучыучыыыыыыы". Расшифровываю указанным выше методом. Получаю результат с верным ключом: ссылка (загружается долго) Результат, конечно, условно удовлетворительный.


По поводу добавления разных символов к коротким словам.
Есть хорошая поговорка: "Знал бы, где упасть, солому подстелил".
Чтобы сработал метод DecodingByCharacterFrequency нужно поднять частность
только одного символа, который даст возможность вычислить верный ключ шифрования.
Можно конечно перебирать все символы шифротекта с каждым из часто употребимым символом языка,
но при этом возрастёт количество переборов и их может оказаться больше чем при методе BruteForceDecoding.
Метод BruteForceDecoding успешно расшифровавывает короткие слова и работает быстро.
Теперь про слоги, корни и болле глубокий ленгвистиский анализ.
Заманчиво, но думаю, что в связи с шифром Цезаря это нецелесообразно.
Уже давно всем стало понятно, что он легко и быстро взламывается.

p.s для тестирования класса CaesarCipher добавил английский и немецкий частотные алфавиты

https://www.alto-booking.com/tes...test=7&key=5
Цитата:
going to the supermarket martha is at the grocery store getting ready for a house party she has a list of what she needs with her as she goes along the first section she comes has produce martha sees apples bananas cherries grapes and strawberries


https://www.alto-booking.com/tes...est=5&key=10
Цитата:
urlaub in den bergen herr und frau meyer fahren oft in die berge berge gibt es in deutschland, österreich, italien und der schweiz ihr reiseziel ist in diesem jahr die schweiz dort kann man viel wandern in einem berghotel haben sie ein zimmer gebucht
Vladimir Kheifets Отправлено: 10 Февраля, 2021 - 13:52:20 • Тема: Шифр Цезаря на php (?¿) • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1322
Добрый день, Aleri!

Изввините, меня, за накладки, которые Вы ещё заметите.
Теперь подчистил. См. PHP class CaesarCipher в zip-файле.
При вызове класса необходимо определить алфавит
в ассоциативном массиве кеу: символ, value: частотность символа в текстах.
Протестировал пока на текстах на русском языке.

https://www.alto-booking.com/tes...test=1&key=9
Цитата:
еще одной интересной функцией программы является стеганография теганография это возможность прикрепления шифротекста в любой файл с сохранением его работоспособности подобно тому как революционеры писали письма молоком на полях книг так и здесь зашифрованный текст можно записать например в файл картинки никто не догадается что фотографии которыми вы обмениваетесь с вашим деловым партнером содержат секретную информацию

https://www.alto-booking.com/tes...est=2&key=10
Цитата:
молоко

https://www.alto-booking.com/tes...test=3&key=5
Цитата:
суп из топора

https://www.alto-booking.com/tes...test=4&key=9
Цитата:
кот


По ходу обсуждения алгоритма возник вопрос о его работоспособности на коротких текстах.
dcc0 пишет:
Код, получается, в расчёте только на большие строки слово "тфсфрфзфн" не получилось расшифровать.

Теперь могу ответить.
Во всех случаях, тесты должны шифроваться и расшифровываться на одном
и том же алфавите, напрример, пробел 0-символ, алфавит без буквы ё, как в задаче Aleri.
Метод BruteForceDecoding работет стабильно.
Метод DecodingByCharacterFrequency работет только с техтами с проявленим
частотности одного символа, например, "молоко"
и не работает в случаях, если все символы в тексте уникальны, например, "кот".
Это код тестевого скрипта.
Спойлер (Отобразить)
Удачи!
Vladimir Kheifets Отправлено: 08 Февраля, 2021 - 18:11:10 • Тема: Шифр Цезаря на php (?¿) • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1322
dcc0 пишет:
...Но есть интересный факт (можно сказать, противоречеие, почти), который отчасти объясняет ответ, полученный Вами от Google. "На какую букву больше всего слов в русском языке?". Ответ: "п". Весы качнулись в Вашу пользу.
P.S. Интересно с Цезарем: есть шанс найти достаточно большой текст без ошибок с первого раза на листке бумаге, если попадётся слово с двумя нн.

Думаю, что не столь важно какие символы окажутся в этой частотной выборке.
Попытаемся понять при каких условиях работоспособенный частотный алгоритм.
К счастью, погода сейчас нелётная и занимаемся мы не физикой элементарных частиц.
В том смысле, что нам не нужны синхрофазатроны для проверки гипотез.
Решил начать с начала. Сделал чистое шифрование и тестирую алгоритмы расшифровки.
Покажу результаты.
Vladimir Kheifets Отправлено: 08 Февраля, 2021 - 11:12:05 • Тема: Шифр Цезаря на php (?¿) • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1322
dcc0 пишет:
Vladimir Kheifets,
Доброго вечера!Да. Я не прав. Неправильно запомнил.
Но вроде бы так по частотности: о, е, а

Добрый день!
Ради интереса взял на с wiki таблицу
"Статистика частотности букв русского языка (на материале НКРЯ)"
Расчитал частота букв в русском языке (частотность>5%)
Спойлер (Отобразить)
Результат
Цитата:
Array
(
[0] => о
[1] => е
[2] => а
[3] => и
[4] => н
[5] => т
[6] => с
)

Если предположить, что этот источник болле достоверный, то Вы были правы,
а google ошибается. Кому пожаловаться?

(Добавление)
Aleri,
замените, пожалуйста, в последнем варианте скрипта
PHP:
скопировать код в буфер обмена
  1. //эти символы наиболле часто встречаются в текстах на русском языке.
  2. $most_frequently_used = ["о", "е", "а", "и", "н", "т", "с"];

В шифротексте был потерян первый символ "о" и "ш" в середине д.б. так
Спойлер (Отобразить)

необходимо добавить проверку на отрицательный индекс массива $alphabet
Спойлер (Отобразить)
После всех этих мучений получите чистую расшифровку

Цитата:
еще одной интересной функцией программы является стеганография теганография это возможность прикрепления шифротекста в любой файл с сохранением его работоспособности подобно тому как революционеры писали письма молоком на полях книг так и здесь зашифрованный текст можно записать например в файл картинки никто не догадается что фотографии которыми вы обмениваетесь с вашим деловым партнером содержат секретную информацию
Удачи!
Vladimir Kheifets Отправлено: 07 Февраля, 2021 - 22:15:09 • Тема: Шифр Цезаря на php (?¿) • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1322
dcc0 пишет:
Vladimir Kheifets,
Я где-то недавно читал, что в русских текстах чаще встречается буква "а", потом только "о".
Цитата:
тфсфрфзфн

Код, получается, в расчёте только на большие строки слово "тфсфрфзфн" не получилось расшифровать.

google по запросу "частота букв в русском языке" выдаёт: о п р с
https://www[dot]google[dot]com/search?cl[dot][dot][dot]1%8B%D0%BA%D0%B5
слово "тфсфрфзфн" не пробовал расшифрововать
Vladimir Kheifets Отправлено: 07 Февраля, 2021 - 19:31:49 • Тема: Не работает крон в isp • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 68
ZION3312 пишет:
Через браузер выполняется
а в isp планировщике не работает

Добрый день!
Проверьте лог-файлы.
Если нет, то введите в Cron таблицу команду MAILTO="Ваш емайл"
В PHP, если отключена выдача сообщений об ошибках,
поставьте в начале error_reporting и добавьте echo 3;
перед class CronController.
Ждите писем. Увидите Ваши ошибки.
Возможно, что в PHP нужно указывать absolute path to root.
Если писем не будет, то проверяйте установки в Cron таблице
по времени, дням недели и.т.п.
Удачи!
Vladimir Kheifets Отправлено: 07 Февраля, 2021 - 18:15:10 • Тема: Шифр Цезаря на php (?¿) • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1322
Добрый день, Aleri!
Я убрал Вашу таблицу частотности символов алфавита.
Кажется, она не совсем достоверна.
Вместо неё добавил массив часто встечающихся в русских текстах символов
и написал взлом шифра с частоным алгоритмом.
Спойлер (Отобразить)
Удачи!
Vladimir Kheifets Отправлено: 07 Февраля, 2021 - 08:34:12 • Тема: Шифр Цезаря на php (?¿) • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1322
dcc0 пишет:
Интересно стало. Правильно ли мыслю?!
Спойлер (Отобразить)

Добрый день!
"Шифр Цезаря — это вид шифра подстановки, в котором каждый символ
в открытом тексте заменяется символом, находящимся на некотором
постоянном числе позиций левее или правее от него в алфавите." См. здесь:
https://en[dot]wikipedia[dot]org/wiki/Caesar_cipher

В Ваше коде Вы сделали только положительный сдвиг, а должен быть и отрицательный.
Vladimir Kheifets Отправлено: 06 Февраля, 2021 - 16:03:18 • Тема: Шифр Цезаря на php (?¿) • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1322
Aleri пишет:
Мне необходимо осуществить программный взлом шифра Цезаря Растерялся
Дайте обратную связь, если у вас есть хоть какое-то понимание происходящего Меланхолия
Добрый день!
Вы приложили Ворд документ.
В таблице2 потерян символ "ь" м.б ещё что-то неверно.
Вероятно и в самом тексте для расшифровки тоже есть ошибки, потому, что результат получается странный
Цитата:
е одной интересной функцией программ влетс стеганографи теганографи то возможност прикреплени ифротекста в лбой файл с сохранением его работоспособности одобно тому как револционер писали писма молоком на полх книг так и здес заифрованнй текст можно записат например в файл картинки никто не догадаетс то фотографии которми в обмениваетес с ваим деловм партнером содержат секретну информаци

Массивы сделал, но для поиска ключа не использовал.
Результат получен перебором. Ключь шифрования -9
Спойлер (Отобразить)
Когда разберётесь с данными, приложите их,пожалуйста, в .тхт файле.
Удачи!
Vladimir Kheifets Отправлено: 03 Февраля, 2021 - 11:23:34 • Тема: Объединить содержимое в одинаковых подряд тегах • Форум: Регулярные выражения

Ответов: 2
Просмотров: 1437
LML пишет:
Задача: Объединить все символы одного цвета, идущие подряд, под одним тегом, чтобы сократить длину кода.
Необходимо получить:
CODE (html):
скопировать код в буфер обмена
  1. <span style="color:#bf0d0d;">Фору</span><span style="color:#bfffff;">мч</span><span style="color:#bf0d0d;">а</span><span style="color:#bf0ddd;">не</span>

Добрый день!
Если реализовать эту задачу, то такой результ не получится т.к.
символ "a" имеет тот же цвет, что что и символы "Фору".
Результат в Ваше случае будет звучать по французки "Форуа"
Реализовать эту задачу можно без регулярки с помощью
класса DOMDocument или с регуляркой
Спойлер (Отобразить)
Удачи!
Vladimir Kheifets Отправлено: 02 Февраля, 2021 - 18:59:42 • Тема: Php массивы • Форум: Вопросы новичков

Ответов: 8
Просмотров: 499
dcc0 пишет:
А в коде выше неясности: sort - это встроенная функция, как я понял. И зачем-то деление по модулю с генерацией псевдослучайного числа.

Добрый день!
в коде на языке С, Sort не встроенная функция, а самописная и её попросили перевести на PHP,
а деление по модулю с генерацией псевдослучайного числа для того чтобы получить исхоный массив А для тестирования этой функции.
(Добавление)
Aleri пишет:
Здравствуйте, у меня возникла проблема, не могу реализовать данное задание на php:
Перевел исхоный код с языка С на PHP
Спойлер (Отобразить)
Удачи!
Vladimir Kheifets Отправлено: 31 Января, 2021 - 19:48:34 • Тема: Проблема с кодом js, кто поможет? • Форум: JavaScript & VBScript

Ответов: 2
Просмотров: 1425
kikosik666 пишет:
Здравствуйте у меня такой код, когда выбираю один из элементов select, показывает или скрывает ниже представленных блоков.
Не как не могу сделать то же самое при загрузге страницы. Допустим Пункт 2 selected ( <option value="2" selected>Пункт 2</option>), как сделать так чтобы при загрузке страницы работал js код (else if (label==2) )?

Добрый день!
1. Если Вы хотите чтобы при загрузке страницы работал js,
то не нужно в каждом тэге div вставлять атрибут style='display: none;'
Советую Вам во всех случаях убирать style из тэгов и
описывать в <style></style> или файлах css.
Например, так:
CODE (html):
скопировать код в буфер обмена
  1. <style>
  2. div[id^="Block"]{display:none}
  3. </style>
2. Ниже два варианта.
Спойлер (Отобразить)
Спойлер (Отобразить)
Удачи!

Страниц (59): В начало « ... 15 16 17 18 [19] 20 21 22 23 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB