Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регистрация программы, Есть идея помогите осуществить 
:(
    Опции темы
JohnnY
Дата 11.5.2007, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 20.8.2005
Где: Калининград

Репутация: нет
Всего: нет



Принцип работы.
При первом запуске  1-ой программы должен произойти сбор информации т.е.
Например: серийные номера жестких дисков.
Далее из получившихся серийных номеров сгенерировать "ключ" и сохранить его например в файле...

Далее пользователь, например должен запустить 2-ую программу и ввести свои данные, т.е.
свою Фамилию, Имя, Отчество и т.д. и сохранить в файле, перед сохранением эта программа собирает те же данные что и 1-ая программа...

Потом пользователь отправляет сохранённый файл автору по e-mail...

Автор программы получает его и открывает его уже через 3-ю программу которая в свою очередь из собранной информации сгенерирует "ключ"...

Далее автор отправляет этот "ключ" пользователю... 

Для того чтобы зарегистрировать 1-ую программу пользователь должен ввести "ключ" в 1-ую программу, который он получил у автора.

После ввода "ключа" 1-я программа проверяет одинаковы ли "ключи", созданные, 1-й, при первом запуске 1-ой программы и 2-ой, тот который был прислан автором...

Надеюсь вы поняли принцип работы...

Я знаю как собрать информацию о жестких дисках т.е. их серийные номера...
Подскажите пожалуйста как можно сгенерировать из них строку (ключ)...
Можно было бы и РАНДОМАЙЗОМ, но необходимо чтобы из одной строки символов, получилась другая строка с хаотично расставленными символами из первой строки...

И необходимо чтобы при генерации ключа из одной и той же строки всегда получался один и тот же результат и только один, независимо от того сколько раз нажали на кнопку "Генерировать ключ"...

Помогите пожалуйста как же всё таки осуществить эту функцию генерации ключа... Спасибо...



PM MAIL WWW   Вверх
Snowy
Дата 11.5.2007, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Ну, например так:
Код

function StringToHex(s: string): string;
var
  i: integer;
begin
  result := '';
  for i := 1 to Length(s) do
    result := result + IntToHex(ord(s[i]), 2);
end;

function HexToString(s: string): string;
var
  i: integer;
begin
  result := '';
  for i := 1 to Length(s) div 2 do
    try result := result + chr(StrToInt('$' + copy(s, i*2-1, 2)));
    except result := result + '?'; end;
end;

PM MAIL   Вверх
Sunvas
Дата 11.5.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 2
Всего: 89



Шифрование на форуме не раз обсуждалось.. Юзай поиск.
А что будет, если юзер захочет проапргейдить свой комп?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
ama_kid
Дата 11.5.2007, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 9
Всего: 95



JohnnY, сходи по этой ссылке - там много чего полезного для тебя есть...  smile 


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
JohnnY
Дата 12.5.2007, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 20.8.2005
Где: Калининград

Репутация: нет
Всего: нет



Sunvas, ты же читал самый первый пост?

"Далее пользователь, например должен запустить 2-ую программу и ввести свои данные, т.е.
свою Фамилию, Имя, Отчество и т.д. и сохранить в файле, перед сохранением эта программа собирает те же данные что и 1-ая программа...

Потом пользователь отправляет сохранённый файл автору по e-mail..."


У автора уже будут данные этого пользователя и он может отправить повторный запрос, и уже бесплатно будет сгенерирован ключ (если конечно первая регистрация была платная)...



Snowy, спасибо, попробую...


ama_kid, тебе тоже спасибо, неплохая библиотека.... smile

PM MAIL WWW   Вверх
W4FhLF
Дата 12.5.2007, 04:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 1
Всего: 121



JohnnY, да возьми хоть md5 хеш, можешь sha для большей недёжности взять. Что-то своё выдумывать смысла нет, а схема честно говоря очень неудобная, как для пользователя, так и для разработчика и надёжность её отмеряется периодом до покупки первой копии. 

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

Это сообщение отредактировал(а) W4FhLF - 12.5.2007, 04:59


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Letov
Дата 12.5.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



Код

for i:=0 to STRING.length do
begin
     case STRING[i] of
     'a' : STRING2[i]:=c;
     'b' : STRING2[i]:=e

//и так далее
end;



--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
lukas
Дата 12.5.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Шо та типа этого., 

логин + ключ, 2 поля, если после зашифровки логин совпадает с введенным ключом... значит все правильно... ну и так далее....


Код

var
  abc1: array [0..30] of char = ('h','a','f','g','e','q','y','p',
  '9','_','z','m','4','1','?','0','i','w','j','l','5','7',
  'u','2','t','3','r','8','6','s','k');    { 97..122 - a..z}

function Err(str1:string):string;
  var
  i:integer;
begin

for i:=1 to length(str1)-1 do begin
 str1[i]:=abc1[ord(str1[i])-91]
end;
 result:=str1;
end;



--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.