Шифрование даты - страница 2

 
Vitaly Muzichenko:



Ясно, не знал такого термина

 
Alexey Volchanskiy:

Ясно, не знал такого термина

Есть у меня сайт, и там есть что-то на подобие комментариев, так вот решил к каждому прикрутить картинку, и чтоб было просто, имя картинки = e-mail.jpg

Чтоб скрыть почту, пропустил через два разных вида шифрования, на выходе получились мейлы в виде "8e520945.jpg", это мой мейл "8e520945"

Расшифровать не реально, поэтому в сеть не утекут.

 
Vitaly Muzichenko:

Есть у меня сайт, и там есть что-то на подобие комментариев, так вот решил к каждому прикрутить картинку, и чтоб было просто, имя картинки = e-mail.jpg

Чтоб скрыть почту, пропустил через два разных вида шифрования, на выходе получились мейлы в виде "8e520945.jpg", это мой мейл "8e520945"

Расшифровать не реально, поэтому в сеть не утекут.


А на сайте чем расшифровываются? Это VPS или обычный хостинг?

 
Alexey Volchanskiy:

А на сайте чем расшифровываются? Это VPS или обычный хостинг?

Тем-же, чем и шифруется, ключи только в модуле code -> decode, и достать их не реально. Это обычный хостинг.

 

Понадобилось мне привязать продукт к пользователю, долго думал, и решил сделать просто: советник раз в 2-4 часа идёт на сайт, там проверяется "лицензия", и если она действительна по времени, то продолжает работать, если нет = return.

Проверка: на сайте в базе к пользователю прикручено время, если текущее время меньше, то советник получает статус "true с ключом", потом пишет время терминала, в глобальную переменную терминала в формате unix, потом раз в 2-4 часа идёт на сайт, и так по кругу.

Зачем пишу в терминал? На случай, если проблемы со связью, ну или упал хостинг, и если советник не получил от сайта ответ, то берёт время с глобальной переменной и продолжает работать безостановочно. Если не получил ответ с третьей попытки, или получил "false" - блокируется, и работает только в режиме закрытия позиций, после того как все закрыто ним открытое = удаляется. Защиту может и можно обойти, но думаю сложно, там цепочка проверок на подмену данных.

 
Vitaly Muzichenko:

Понадобилось мне привязать продукт к пользователю, долго думал, и решил сделать просто: советник раз в 2-4 часа идёт на сайт, там проверяется "лицензия", и если она действительна по времени, то продолжает работать, если нет = return.

Проверка: на сайте в базе к пользователю прикручено время, если текущее время меньше, то советник получает статус "true с ключом", потом пишет время терминала, в глобальную переменную терминала в формате unix, потом раз в 2-4 часа идёт на сайт, и так по кругу.

Зачем пишу в терминал? На случай, если проблемы со связью, ну или упал хостинг, и если советник не получил от сайта ответ, то берёт время с глобальной переменной и продолжает работать безостановочно. Если не получил ответ с третьей попытки, или получил "false" - блокируется, и работает только в режиме закрытия позиций, после того как все закрыто ним открытое = удаляется. Защиту может и можно обойти, но думаю сложно, там цепочка проверок на подмену данных.

А зачем так часто проверять-то? Если один советник уже проверил дату на сервере и хранит её внутри себя, то он может просто обновлять глобальную переменную периодически по определённому алгоритму и и всё.  Зачем ему снова лезть на сайт?

 
Vitaly Muzichenko:

Тем-же, чем и шифруется, ключи только в модуле code -> decode, и достать их не реально. Это обычный хостинг.


То есть из серии Java Script или PHP?

 
Vladimir Pastushak:
 

Так вот вопрос в том, как зашифровать дату что бы в случае изменения букв или их порядка дата не увеличивалась?

Я бы использовал "помехозащищенное кодирование". Грубо говоря - писал бы дату в самом обычном ulong формате, но к ней бы прибавлял несколько "проверочных" символов.  Скажем, остаток от деления на какое-нибудь достаточно большое (трехзначное) простое число.

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

Собственно, файл может даже иметь INI-формат, и в нем будет entry "datе" - вобще, открытым текстом, в удобном для чтения виде. Еще несколько полей (наверняка тебе какие-то настроечные параметры нужны), и среди них поле "check" - с "проверочным" значением. В результате - файл будет легко читаться, не надо будет расшифровывать мысленно дату, и в тоже время, любое его изменение (а проверочные символы могут вычисляться и на основе остальных полей) - сразу же будет выявляться.

 
Alexey Volchanskiy:

А это ничего, что шифрование AES и DES, которые предлагают MQ, имеют открытый стандарт? И у других шифров, которые в ходу, тоже открытые алгоритмы. Секретчики блин...

если вор знает что у соседа стоит камера и она направлена на его дверь полезет ли вор в дверь? не думаю, так и при шифровании, знаешь как зашифровано уже пол дела сделано.
это жизнь, такие вещи нужно знать.

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

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

с уважением
 
Vitaly Muzichenko:

Понадобилось мне привязать продукт к пользователю, долго думал, и решил сделать просто: советник раз в 2-4 часа идёт на сайт, там проверяется "лицензия", и если она действительна по времени, то продолжает работать, если нет = return.

Проверка: на сайте в базе к пользователю прикручено время, если текущее время меньше, то советник получает статус "true с ключом", потом пишет время терминала, в глобальную переменную терминала в формате unix, потом раз в 2-4 часа идёт на сайт, и так по кругу.

Зачем пишу в терминал? На случай, если проблемы со связью, ну или упал хостинг, и если советник не получил от сайта ответ, то берёт время с глобальной переменной и продолжает работать безостановочно. Если не получил ответ с третьей попытки, или получил "false" - блокируется, и работает только в режиме закрытия позиций, после того как все закрыто ним открытое = удаляется. Защиту может и можно обойти, но думаю сложно, там цепочка проверок на подмену данных.

когда создавал защиту была такая мысль, продумал досконально, построение и структура вышли как у вас. самое рациональное, если занимаешься прокатом советников.


с уважением.

Причина обращения: