Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2015, 18:47   #1
slm
Пользователь
 
Регистрация: 09.05.2008
Сообщений: 40
По умолчанию Код авторизации для передачи по email и т.д.

Доброго времени суток всем.
Суть проблемы в общем глупая донельзя:
Готовая программа привязывается к конкретному компьютеру, реализация готова (благо до меня уже эти вопросы решали). Юзеру выдается авторизационный код, зашифрованный с помощью обычного XOR (тоже в интернете готовых решений - вагон).
Зашифрованный код с помощью другой программы прекрасно распаковывается и выдает уже рабочий код для активации всех возможностей программы.
Все работает идеально пока я не пытаюсь передать авторизационный код по почте. Так я понимаю, что проблема в кодировках. При копировании из Memo одной в edit другой - все отлично. При копированиии в текст email либо отправки через mailto либо... получается бред
Сразу оговорюсь - используется Delphi 7 (уже знаю, что D2010 работает с UTF8, но ради этого перепиливать весь код не с руки).

Что было предпринято:
1. Комбинации OEMConvert для Memo и Edit true/false, а также варианты CHARSET - DEFAULT, RUSSIAN, OEM ...
2. Использование функции UTF8toAnsi и AnsiToUTF8 в различных комбинациях. Кстати, на этом этапе получился интересный результат - чисто визуально окончательная строка похожа на исходную, но раскодировка XOR наотрез отказалась работать
3. Самописная функция Decode тоже результатов не принесла. Если интересно могу кинуть ее код - тоже где-то с просторов интернета благополучно взят

Не испробовано:
1. Использовать шифрование строки не XOR, а с конвертацией в набор цифр (пока не нашел такую функцию готовую, буду думать о самостоятельном изобретении велосипеда). В итоге цифры как ни крути во всех кодировках одинаковые.
2. Передавать через email не символы, а ord-ы (опять же цифры)
3. Плюнуть и не использовать шифрование (не рекомендуется)

Есть ли предложения?

Последний раз редактировалось slm; 29.10.2015 в 18:50.
slm вне форума Ответить с цитированием
Старый 29.10.2015, 19:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Конвертируй код в base64 и передавай, а на стороне клиента расконверчивай.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2015, 19:37   #3
slm
Пользователь
 
Регистрация: 09.05.2008
Сообщений: 40
По умолчанию

Stilet, спасибо - как всегда просто и изящно. Кстати, это та программа, которую мы с тобой обсуждали и опять же по твоей наводке создана. Как-то я и не подумал про base64. Единственное - придется искать и заменять пробел на +, но это мизерная проблема
slm вне форума Ответить с цитированием
Старый 29.10.2015, 19:58   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
придется искать и заменять пробел на +,
Не придется. в Base64 нет пробельных после энкодинга.
А то, о чем ты говоришь - это URI кодировка. Кстати можно и ее использовать, если данные не сильно секретные.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.10.2015, 20:11   #5
slm
Пользователь
 
Регистрация: 09.05.2008
Сообщений: 40
По умолчанию

Еще раз спасибо. Все отлично работает.
slm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу программиста для email маркетинга VoronX Фриланс 3 18.03.2014 15:29
Посоветуйте компонент для отправки email. Zadovatel Компоненты Delphi 8 04.09.2013 00:48
JS для авторизации zalza Помощь студентам 1 25.11.2012 03:52
Виджет для авторизации вк Andrey770 PHP 0 29.10.2012 21:07
Покритикуйте код авторизации skeletor PHP 13 06.08.2010 02:45