Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
И снова привет уважаемые форумчане. Как один из разработчиков на облегченном, линейном языке програмирования я столкнулся с проблемой которую не могу решить просто изза недостатка данных. Может у кого появятся хоть какие нибудь мысли которые помогут регить мне возникшую проблему. ------------------- Собственно в чем дело: Есть такой плагин NeoCipher который шифрует данные под несколько алгоритмов и хеш функций Есть еще и функции от Дембеля среди которого есть один free алгоритм BlowFish Я предпочел именно BlowFish из-за его распространенности и доступности на серверной стороне.
Передомной стала задача шифровать строку данных в программе с специальным ключем и отправлять ее на сервер, а сервер должен (без подробностей) прочитать строку разшифровав ее этим специальным ключем и проверить на валидность.
Проблема в том что я не могу свести две одинаковых строки, зашифрованные одинаковым алгоритмом с одинаковым ключем Для начала нужно сделать именно это чтобы быть уверенным что шифрование и разшифрование идет синхронизированно. Я перепробовал кучу вариантов и не могу вкурить как свести два алгоритма на одинаковый результат ---------------- Для начала я пробовал использовать плагин который возращает шифрованную строку но в виде base64 (выходная строка выдает себя характерными знаками "=" вконце) вдобавок используется хеш функция которая влияет на результат, но она на стороне сервера не може быть применена просто изза тамошнего устройства. Хорошо Я использовал функцию дембеля чтобы получить зашифрованную строку в BlowFish там нет хеш функции и поэтому по идее должно сработать как нужно. НО эта сволочь всеравно шифрует по другому, я сравнивал hexы и они так же не совпадали с тем что шифруется на php. Чуть позже проясниось что шифрование там, на сервере может идти по разным режимам типа ecb ofb и так далее (основа для шифрования модуль mcrypt) и от режимов меняется результат хотя дефолт ecb ---------- Что у меня получается В функции от дембеля 12345 текст ключ такойже, результат в hex 287CAC58C5BB9127 это же в тексте (|¬XЕ»‘' если еще примешать base64 то Mjg3Q0FDNThDNUJCOTEyNw== +++++ Если закодить в плагине NeoCipher при том же тексте и ключе +хеш функцией к примеру MD5 получим tsLB4mc= Знак = говорит о base64 этот знак некий суффикс шифрования Пробуем это разкодить ведь я незнаю. как плагин на самом деле шифрует ибо у нас чистое шифрование - кракозябли, но в ответ получаем ?? и я представить не могу через какую опу все завинчено ++++++ На сервере тестовый скрипт при тех же данных выдает hex e290525626afdbea в тексте âRV&¯Ûê -------------------------------- Помогите кто чем может) Просто глупо не получается свести одинаковое шифрование одним и тем же алгоритмом
Добавлено (09 Февраля 2014, 00:50) --------------------------------------------- Кажется я не там тему написал - прошу прощения)
Дело в том что сейчас у меня есть эдакий проект в котором будет авторизация на сервере, то что я тут выдумал делается для авторизации в системе без пароля, собственно мера защиты от копирования сессии... Поэтому такая заморочка(
Цитатаmishem ()
NeoDouble
Это скажем выноска функций шифрования в плагин NeoCipher по сути одно и то же и ганерация строк одинакова, хрен его знает как там шифрование сделано в плагине. оказалось если использовать другой режим на сервере (не ecb (electronic codebook)) то появляется некий параметр "вектор инициализации" это еще одна плюшка добавляющая головняка. Еслиб можно было плагин разковырять))) Хотя я мало что бы там понял, просто строка которая шифруется имеет в сыром виде кракозябли, которые еще во что-то конвертируются на основе хеш функции которую черт знает как повторить на сервере.
Цитатаmishem ()
Все остальное, это куски из NeoDouble с дизайном и косяками.
Мне попадался супер сайт с кучей плагинов на np и смотрел я их на сайте ресурсов необука, ни одного бесплатного плагина... ни одного, неужто они все такие супер навороченные, мне кажется с ценой он сильно преувеличил типа если ты нуб то отвали ему денежек, я читат тут про его плагины и про никакущую поддержку... цены не сложат
Цитатаmishem ()
hpwZlibCompressString
Толку? Мне нужно уже хоть какое нибудь шифрование типа DES или этого BF что можно повторить на PHP чтобы там был ключ! I will alive before dead
Сообщение отредактировано UserDead - Вс, 09 Февраля 2014, 10:15
Я тебе по секрету скажу, самое зщасекреченное и взломать не возможнор, и в то же время самое простое, а ахив rar Пароль из 10 символов, лет 10 подбирать будут.
А вообще по шифрованию я ничего не знаю. Что помнил, предложил. Разбирайся.
Michem Я знаю уже давно что супер мега защиты нет, на любой замок есть отмычка. Вопрос в проценте гемороя который будет мешать сделать отмычке свое дело + разобраться что к чему. Кстати ZlibCompressString выдет строку похожую снова на base64... короче велосипед Кстати надо попробовать касательно php в нб, я както его встречал но ему надо же както переменные отдать, впрочем попробуем разобраться, видите ли одного php мало тут еще доп библиотека mcrypt, понянет ли плагин функцию остается скрестить пальцы p.s. ничего сверх засекреченного нет по сути, просто не хватает этого элемента, оно даже со стороны кажется что может быть проще, а не тут то было
Добавлено (09 Февраля 2014, 10:54) --------------------------------------------- УРААА Хоть что-то! Спасибо michem лови плюсик NeoPhp сделал все как надо, + я понял как передать там переменные, правда одна махонькая неудобность это dll"ки ну то какнить) Собсно терь можно продолжать работать Криптохрень такой гемор
I will alive before dead
Сообщение отредактировано UserDead - Вс, 09 Февраля 2014, 10:33
то появляется некий параметр "вектор инициализации" это еще одна плюшка добавляющая головняка.
Зависит от алгоритма шифрования. Эта "плюшка" и нужна для того, чтобы обеспечить совместимость шифровки/дешифровки (вектор инициализации указывает на величину блока шифрования). Для обеспечения правильной дешифоровки данных они должны быть закодированы/раскодированы одним алгоритмом с одним и тем же вектором. В подобных вариантах можно даже зашить в шифрованный файл сам ключ шифрования, но в этом случае безопасность зашифрованных данных, мягко говоря, снижается. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Ну если ключ будет перед носом останется его заметить... Одако если ключ фейковый (тоесть от фонаря) я представляю сколько головняка кухацкеру представится понять откуда и куда этот ключ и может он дополнительно шифван ----------- Вот интересно плагины по шифрованию есть, а справки и тех документации нет, вдруг там еть этот вектор который идет по стандарту каждому алгоритму и к чему вообще там хеш функция в ciher'е попробуй еще разберись. ------ Ну да ладно, вопрос считай решен плагином запускающий php код в необуке, а dllки затащить куданить Вобщем всем безмерно благодарен I will alive before dead
этот вектор который идет по стандарту каждому алгоритму
Он и идет по стандарту (по длине вектора), только вот без ключа от этого вектора ничего не добиться, кроме того и ключ и вектор имеют в каждом файле побайтовое начало, не зная которое тоже толку нуль. А файлы, содержащие в себе и ключ и вектор, применяются для защиты от лохов, а не, естественно, от матерых хакеров. Этот способ хорош тем, что для расшифровки файла не обязательно знать ключ, надо только знать его длину (чтобы вытащить из файла), вектор и точку отсчета.
ЦитатаUserDead ()
к чему вообще там хеш функция в ciher'е
Ключ хранится и применяется не в явном виде, а в виде хеш-суммы.
ЦитатаUserDead ()
вопрос считай решен
Ну, и ладушки... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Сейчас халтурю - привожу в порядок чужой комп с семеркой и IE11 (с него и пишу), Господи, как же грубо выглядит сайт с размытыми шрифтами и толстыми буквами... Словно топором рубили... Кошмар...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
а зачем? прятать не надо. Мне бы не понравилось. Пусть лежать в корне проекта сделай проверку, если кто удалит, то напишешь ему "гудбай" Можно свой алгоритм шифровки сделать, знать будешь только ты, и даже ключ не понадобится. Хотя можно и "заСолить"
вот оно-ключевое слово-в не совпадении расшифровки. (ну я так думаю)
Если ты о несовпадении ключей то я бы заметил сразу, скорее векторы разные,
ЦитатаСергей ()
В пыхе его всего два предустановленных, а в плаге?!
на плагины документации нету, соответственно и вектор неизвестен. Хотя в функции от дембеля можно было бы и покопать его...
ЦитатаСергей ()
Можно свой алгоритм шифровки сделать, знать будешь только ты, и даже ключ не понадобится. Хотя можно и "заСолить"
Конечно можно, я уже подумал над этим и начал с обычного присваивания кода букве с фиксированным блоком, это конечно не айс и это использовали во времена войны, но кто знает дочего дойдет генератор)))
ЦитатаPeter ()
Ключ хранится и применяется не в явном виде, а в виде хеш-суммы.
Peter Спасибо большое, мозги так ... хм... закакались что не догадался о подобном. Я снова провел пальцетыкательные испытания но пока не совсем успешно, наверное изза вектора если он есть. Если вдруг чудом сведу данные и себе упрощу работу и в теме плагина поделюсь. Комуто да пригодится. I will alive before dead
Сообщение отредактировано UserDead - Вс, 09 Февраля 2014, 22:09