Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Шифрование строки и их различия
UserDeadДата: Вс, 09 Февраля 2014, 00:50 | Сообщение # 1
Любопытный
И снова привет уважаемые форумчане.
Как один из разработчиков на облегченном, линейном языке програмирования я столкнулся с проблемой которую не могу решить просто изза недостатка данных.
Может у кого появятся хоть какие нибудь мысли которые помогут регить мне возникшую проблему.
-------------------
Собственно в чем дело:
Есть такой плагин 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)
---------------------------------------------
Кажется я не там тему написал - прошу прощения)


I will alive before dead
 
СообщениеИ снова привет уважаемые форумчане.
Как один из разработчиков на облегченном, линейном языке програмирования я столкнулся с проблемой которую не могу решить просто изза недостатка данных.
Может у кого появятся хоть какие нибудь мысли которые помогут регить мне возникшую проблему.
-------------------
Собственно в чем дело:
Есть такой плагин 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)
---------------------------------------------
Кажется я не там тему написал - прошу прощения)


Автор - UserDead
Дата добавления - 09 Февраля 2014 в 00:50
mishemДата: Вс, 09 Февраля 2014, 02:59 | Сообщение # 2
Эксперт форума
Используй плагин hpwUtility hpwZlibCompressString, и голову не забивай.
Я смотрю ты шифруешься во всем, как неуловимый Джо. ;)
:)

Добавлено (09 Февраля 2014, 02:59)
---------------------------------------------
Посмотри еще NeoDouble, npCifrarCadena

А это дерьмо что начинается на np, советую использовать только в крайнем случае.

На мой взгляд, NeoDouble это лучшее что он сделал. Все остальное, это куски из NeoDouble с дизайном и косяками.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеИспользуй плагин hpwUtility hpwZlibCompressString, и голову не забивай.
Я смотрю ты шифруешься во всем, как неуловимый Джо. ;)
:)

Добавлено (09 Февраля 2014, 02:59)
---------------------------------------------
Посмотри еще NeoDouble, npCifrarCadena

А это дерьмо что начинается на np, советую использовать только в крайнем случае.

На мой взгляд, NeoDouble это лучшее что он сделал. Все остальное, это куски из NeoDouble с дизайном и косяками.


Автор - mishem
Дата добавления - 09 Февраля 2014 в 02:59
UserDeadДата: Вс, 09 Февраля 2014, 10:14 | Сообщение # 3
Любопытный
Дело в том что сейчас у меня есть эдакий проект в котором будет авторизация на сервере, то что я тут выдумал делается для авторизации в системе без пароля, собственно мера защиты от копирования сессии...
Поэтому такая заморочка(
Цитата mishem ()
NeoDouble

Это скажем выноска функций шифрования в плагин NeoCipher по сути одно и то же и ганерация строк одинакова, хрен его знает как там шифрование сделано в плагине. оказалось если использовать другой режим на сервере (не ecb (electronic codebook)) то появляется некий параметр "вектор инициализации" это еще одна плюшка добавляющая головняка. Еслиб можно было плагин разковырять))) Хотя я мало что бы там понял, просто строка которая шифруется имеет в сыром виде кракозябли, которые еще во что-то конвертируются на основе хеш функции которую черт знает как повторить на сервере.

Цитата mishem ()
hpwZlibCompressString

Толку? Мне нужно уже хоть какое нибудь шифрование типа DES или этого BF что можно повторить на PHP чтобы там был ключ!


I will alive before dead

Сообщение отредактировано
UserDead - Вс, 09 Февраля 2014, 10:15
 
СообщениеДело в том что сейчас у меня есть эдакий проект в котором будет авторизация на сервере, то что я тут выдумал делается для авторизации в системе без пароля, собственно мера защиты от копирования сессии...
Поэтому такая заморочка(
Цитата mishem ()
NeoDouble

Это скажем выноска функций шифрования в плагин NeoCipher по сути одно и то же и ганерация строк одинакова, хрен его знает как там шифрование сделано в плагине. оказалось если использовать другой режим на сервере (не ecb (electronic codebook)) то появляется некий параметр "вектор инициализации" это еще одна плюшка добавляющая головняка. Еслиб можно было плагин разковырять))) Хотя я мало что бы там понял, просто строка которая шифруется имеет в сыром виде кракозябли, которые еще во что-то конвертируются на основе хеш функции которую черт знает как повторить на сервере.

Цитата mishem ()
hpwZlibCompressString

Толку? Мне нужно уже хоть какое нибудь шифрование типа DES или этого BF что можно повторить на PHP чтобы там был ключ!

Автор - UserDead
Дата добавления - 09 Февраля 2014 в 10:14
mishemДата: Вс, 09 Февраля 2014, 10:22 | Сообщение # 4
Эксперт форума
Цитата UserDead ()
чтобы там был ключ!

Я тебе по секрету скажу, самое зщасекреченное и взломать не возможнор, и в то же время самое простое, а ахив rar ;) Пароль из 10 символов, лет 10 подбирать будут.

А вообще по шифрованию я ничего не знаю. Что помнил, предложил. Разбирайся.

Цитата UserDead ()
что можно повторить на PHP

Есть плагин для PHP, шифруй на нем в нб. ;)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата UserDead ()
чтобы там был ключ!

Я тебе по секрету скажу, самое зщасекреченное и взломать не возможнор, и в то же время самое простое, а ахив rar ;) Пароль из 10 символов, лет 10 подбирать будут.

А вообще по шифрованию я ничего не знаю. Что помнил, предложил. Разбирайся.

Цитата UserDead ()
что можно повторить на PHP

Есть плагин для PHP, шифруй на нем в нб. ;)

Автор - mishem
Дата добавления - 09 Февраля 2014 в 10:22
UserDeadДата: Вс, 09 Февраля 2014, 10:54 | Сообщение # 5
Любопытный
Michem :)
Я знаю уже давно что супер мега защиты нет, на любой замок есть отмычка.
Вопрос в проценте гемороя который будет мешать сделать отмычке свое дело + разобраться что к чему.
Кстати ZlibCompressString выдет строку похожую снова на base64... короче велосипед :D
Кстати надо попробовать касательно php в нб, я както его встречал но ему надо же както переменные отдать, впрочем попробуем разобраться, видите ли одного php мало тут еще доп библиотека mcrypt, понянет ли плагин функцию остается скрестить пальцы
p.s. ничего сверх засекреченного нет по сути, просто не хватает этого элемента, оно даже со стороны кажется что может быть проще, а не тут то было

Добавлено (09 Февраля 2014, 10:54)
---------------------------------------------
УРААА Хоть что-то!
Спасибо michem лови плюсик ;)
NeoPhp сделал все как надо, + я понял как передать там переменные, правда одна махонькая неудобность это dll"ки ну то какнить)
Собсно терь можно продолжать работать
Криптохрень такой гемор :D


I will alive before dead

Сообщение отредактировано
UserDead - Вс, 09 Февраля 2014, 10:33
 
СообщениеMichem :)
Я знаю уже давно что супер мега защиты нет, на любой замок есть отмычка.
Вопрос в проценте гемороя который будет мешать сделать отмычке свое дело + разобраться что к чему.
Кстати ZlibCompressString выдет строку похожую снова на base64... короче велосипед :D
Кстати надо попробовать касательно php в нб, я както его встречал но ему надо же както переменные отдать, впрочем попробуем разобраться, видите ли одного php мало тут еще доп библиотека mcrypt, понянет ли плагин функцию остается скрестить пальцы
p.s. ничего сверх засекреченного нет по сути, просто не хватает этого элемента, оно даже со стороны кажется что может быть проще, а не тут то было

Добавлено (09 Февраля 2014, 10:54)
---------------------------------------------
УРААА Хоть что-то!
Спасибо michem лови плюсик ;)
NeoPhp сделал все как надо, + я понял как передать там переменные, правда одна махонькая неудобность это dll"ки ну то какнить)
Собсно терь можно продолжать работать
Криптохрень такой гемор :D


Автор - UserDead
Дата добавления - 09 Февраля 2014 в 10:54
PeterДата: Вс, 09 Февраля 2014, 14:46 | Сообщение # 6
Админ NeoBook
Цитата UserDead ()
то появляется некий параметр "вектор инициализации" это еще одна плюшка добавляющая головняка.

Зависит от алгоритма шифрования.
Эта "плюшка" и нужна для того, чтобы обеспечить совместимость шифровки/дешифровки (вектор инициализации указывает на величину блока шифрования).
Для обеспечения правильной дешифоровки данных они должны быть закодированы/раскодированы одним алгоритмом с одним и тем же вектором.
В подобных вариантах можно даже зашить в шифрованный файл сам ключ шифрования, но в этом случае безопасность зашифрованных данных, мягко говоря, снижается.


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата UserDead ()
то появляется некий параметр "вектор инициализации" это еще одна плюшка добавляющая головняка.

Зависит от алгоритма шифрования.
Эта "плюшка" и нужна для того, чтобы обеспечить совместимость шифровки/дешифровки (вектор инициализации указывает на величину блока шифрования).
Для обеспечения правильной дешифоровки данных они должны быть закодированы/раскодированы одним алгоритмом с одним и тем же вектором.
В подобных вариантах можно даже зашить в шифрованный файл сам ключ шифрования, но в этом случае безопасность зашифрованных данных, мягко говоря, снижается.

Автор - Peter
Дата добавления - 09 Февраля 2014 в 14:46
UserDeadДата: Вс, 09 Февраля 2014, 17:49 | Сообщение # 7
Любопытный
Ну если ключ будет перед носом останется его заметить... Одако если ключ фейковый (тоесть от фонаря) я представляю сколько головняка кухацкеру представится понять откуда и куда этот ключ и может он дополнительно шифван :D :p
-----------
Вот интересно плагины по шифрованию есть, а справки и тех документации нет, вдруг там еть этот вектор который идет по стандарту каждому алгоритму и к чему вообще там хеш функция в ciher'е попробуй еще разберись.
------
Ну да ладно, вопрос считай решен плагином запускающий php код в необуке, а dllки затащить куданить :)
Вобщем всем безмерно благодарен thumbs_up


I will alive before dead
 
СообщениеНу если ключ будет перед носом останется его заметить... Одако если ключ фейковый (тоесть от фонаря) я представляю сколько головняка кухацкеру представится понять откуда и куда этот ключ и может он дополнительно шифван :D :p
-----------
Вот интересно плагины по шифрованию есть, а справки и тех документации нет, вдруг там еть этот вектор который идет по стандарту каждому алгоритму и к чему вообще там хеш функция в ciher'е попробуй еще разберись.
------
Ну да ладно, вопрос считай решен плагином запускающий php код в необуке, а dllки затащить куданить :)
Вобщем всем безмерно благодарен thumbs_up

Автор - UserDead
Дата добавления - 09 Февраля 2014 в 17:49
PeterДата: Вс, 09 Февраля 2014, 18:45 | Сообщение # 8
Админ NeoBook
Цитата UserDead ()
этот вектор который идет по стандарту каждому алгоритму

Он и идет по стандарту (по длине вектора), только вот без ключа от этого вектора ничего не добиться, кроме того и ключ и вектор имеют в каждом файле побайтовое начало, не зная которое тоже толку нуль.
А файлы, содержащие в себе и ключ и вектор, применяются для защиты от лохов, а не, естественно, от матерых хакеров.
Этот способ хорош тем, что для расшифровки файла не обязательно знать ключ, надо только знать его длину (чтобы вытащить из файла), вектор и точку отсчета.

Цитата UserDead ()
к чему вообще там хеш функция в ciher'е

Ключ хранится и применяется не в явном виде, а в виде хеш-суммы.

Цитата UserDead ()
вопрос считай решен

Ну, и ладушки...


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата UserDead ()
этот вектор который идет по стандарту каждому алгоритму

Он и идет по стандарту (по длине вектора), только вот без ключа от этого вектора ничего не добиться, кроме того и ключ и вектор имеют в каждом файле побайтовое начало, не зная которое тоже толку нуль.
А файлы, содержащие в себе и ключ и вектор, применяются для защиты от лохов, а не, естественно, от матерых хакеров.
Этот способ хорош тем, что для расшифровки файла не обязательно знать ключ, надо только знать его длину (чтобы вытащить из файла), вектор и точку отсчета.

Цитата UserDead ()
к чему вообще там хеш функция в ciher'е

Ключ хранится и применяется не в явном виде, а в виде хеш-суммы.

Цитата UserDead ()
вопрос считай решен

Ну, и ладушки...

Автор - Peter
Дата добавления - 09 Февраля 2014 в 18:45
СергейДата: Вс, 09 Февраля 2014, 18:47 | Сообщение # 9
Необукер
UserDead, вот оно-ключевое слово-в не совпадении расшифровки. (ну я так думаю)
Цитата Peter ()
вектор инициализации

В пыхе его всего два предустановленных, а в плаге?!
Может даже из за этого и не получалось.
 
СообщениеUserDead, вот оно-ключевое слово-в не совпадении расшифровки. (ну я так думаю)
Цитата Peter ()
вектор инициализации

В пыхе его всего два предустановленных, а в плаге?!
Может даже из за этого и не получалось.

Автор - Сергей
Дата добавления - 09 Февраля 2014 в 18:47
PeterДата: Вс, 09 Февраля 2014, 18:56 | Сообщение # 10
Админ NeoBook


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение

Автор - Peter
Дата добавления - 09 Февраля 2014 в 18:56
СергейДата: Вс, 09 Февраля 2014, 19:03 | Сообщение # 11
Необукер
Цитата UserDead ()
а dllки затащить куданить
а зачем? прятать не надо. Мне бы не понравилось. Пусть лежать в корне проекта сделай проверку, если кто удалит, то напишешь ему "гудбай"
Можно свой алгоритм шифровки сделать, знать будешь только ты, и даже ключ не понадобится. Хотя можно и "заСолить" :D
 
Сообщение
Цитата UserDead ()
а dllки затащить куданить
а зачем? прятать не надо. Мне бы не понравилось. Пусть лежать в корне проекта сделай проверку, если кто удалит, то напишешь ему "гудбай"
Можно свой алгоритм шифровки сделать, знать будешь только ты, и даже ключ не понадобится. Хотя можно и "заСолить" :D

Автор - Сергей
Дата добавления - 09 Февраля 2014 в 19:03
UserDeadДата: Вс, 09 Февраля 2014, 22:07 | Сообщение # 12
Любопытный
Цитата Сергей ()
вот оно-ключевое слово-в не совпадении расшифровки. (ну я так думаю)

Если ты о несовпадении ключей то я бы заметил сразу, скорее векторы разные,
Цитата Сергей ()
В пыхе его всего два предустановленных, а в плаге?!

на плагины документации нету, соответственно и вектор неизвестен. Хотя в функции от дембеля можно было бы и покопать его...
Цитата Сергей ()
Можно свой алгоритм шифровки сделать, знать будешь только ты, и даже ключ не понадобится. Хотя можно и "заСолить"

Конечно можно, я уже подумал над этим и начал с обычного присваивания кода букве с фиксированным блоком, это конечно не айс и это использовали во времена войны, но кто знает дочего дойдет генератор)))

Цитата Peter ()
Ключ хранится и применяется не в явном виде, а в виде хеш-суммы.

Peter Спасибо большое, мозги так ... хм... закакались что не догадался о подобном. Я снова провел пальцетыкательные испытания но пока не совсем успешно, наверное изза вектора если он есть.
Если вдруг чудом сведу данные и себе упрощу работу и в теме плагина поделюсь. Комуто да пригодится.


I will alive before dead

Сообщение отредактировано
UserDead - Вс, 09 Февраля 2014, 22:09
 
Сообщение
Цитата Сергей ()
вот оно-ключевое слово-в не совпадении расшифровки. (ну я так думаю)

Если ты о несовпадении ключей то я бы заметил сразу, скорее векторы разные,
Цитата Сергей ()
В пыхе его всего два предустановленных, а в плаге?!

на плагины документации нету, соответственно и вектор неизвестен. Хотя в функции от дембеля можно было бы и покопать его...
Цитата Сергей ()
Можно свой алгоритм шифровки сделать, знать будешь только ты, и даже ключ не понадобится. Хотя можно и "заСолить"

Конечно можно, я уже подумал над этим и начал с обычного присваивания кода букве с фиксированным блоком, это конечно не айс и это использовали во времена войны, но кто знает дочего дойдет генератор)))

Цитата Peter ()
Ключ хранится и применяется не в явном виде, а в виде хеш-суммы.

Peter Спасибо большое, мозги так ... хм... закакались что не догадался о подобном. Я снова провел пальцетыкательные испытания но пока не совсем успешно, наверное изза вектора если он есть.
Если вдруг чудом сведу данные и себе упрощу работу и в теме плагина поделюсь. Комуто да пригодится.

Автор - UserDead
Дата добавления - 09 Февраля 2014 в 22:07
  • Страница 1 из 1
  • 1
Поиск: