Просмотр полной версии : Привязка программы к логину и паролю
need_million
29.05.2010, 21:42
Какк привязать программу к определенному логину и паролю.
к примеру есть сайт, на нем у человека есть логин и пароль. я хочу что бы программа могла работать только с этим логином и паролем.
Вариант, сразу вшить их в программу и скомпилить не подходит, человек не хочет что бы я знал пароль.
Zombi ****
29.05.2010, 21:45
типо мейл ру агента чтоли?
.::f-duck::.
29.05.2010, 21:51
человек не хочет что бы я знал пароль.
Вроде никак,с таким условием.
Вроде никак,с таким условием.
Нет, почему же... Если пароль будет шифроваться с помощью MD5 алгоритма, то действительно не будет знать.
.::f-duck::.
29.05.2010, 21:59
Chrome~,ну,все равно мд5 то будет у него. Естессно,можно и не смотреть на пасс,тогда тоже не будет знать его :\
к примеру есть сайт
Если есть сайт то пусть программа коннектится к БД и сравнивает логин с паролем.
ну пусть пи первом запуске программы софт просит ввести новый пароль .хеш пароля записывается в реестр и при каждом новом запуске прога просит пароль и проверяет его с тем что в реестре.Так пароль и автор софта знать не будет т.к пароль придумывает клиент и проверка пароля есть.
Правда безопасность хромает.
p/S Вроде мой вариант удовлетворяет условиям ТСа.
.::f-duck::.
29.05.2010, 22:21
Самое оптимальное - наибать клиента. Все равно плохого ничего не будет,а геммора из-за его требований мульен :\
Seven[up]
29.05.2010, 22:23
привязать программу к логину. пользователь вводит логин, пароль. если логины совпадают, идет авторизация на сайте. если авторизация успешна, то форма открывается.
need_million
29.05.2010, 22:46
Seven[up], ещё разок прочитай, что мне надо. так любой пользователь сможет.
waik, реестр гуд, но...есть разные но..
а вообще я тупанул...на пароль мне пофиг главное логин,
клиент дает - логин, я его вшиваю, а он только пароль вписывает.
Seven[up], ещё разок прочитай, что мне надо. так любой пользователь сможет.
waik, реестр гуд, но...есть разные но..
а вообще я тупанул...на пароль мне пофиг главное логин,
клиент дает - логин, я его вшиваю, а он только пароль вписывает.
так тебе надо привязать прогу к компу получается?
http://uasc.org.ua/2010/05/c_shart_protect/
Seven[up], ещё разок прочитай, что мне надо. так любой пользователь сможет.
waik, реестр гуд, но...есть разные но..
а вообще я тупанул...на пароль мне пофиг главное логин,
клиент дает - логин, я его вшиваю, а он только пароль вписывает.
Дык все правильно Seven[up] написал.
привязать программу к логину. пользователь вводит логин, пароль. если логины совпадают, идет авторизация на сайте. если авторизация успешна, то форма открывается.
И любой желающий не запустит софт, потому что проверка на логин лишь отбрасывает вариант запуска софтины другим зарегистрированным, на ресурсе о котором идет речь, пользователе. А сама привязка идет к паре логину и паролю, которая будет осуществляться логином на ресурсе, и в случае успешного логина будет запущена форма.
Вы все забыли о сниферах и кукис.Пароль можно будет легко перехватить
Если только https...но кукисы не уберёшь. :(
Вы все забыли о сниферах и кукис.Пароль можно будет легко перехватить
Если только https...но кукисы не уберёшь. :(
Тогда шаг проверки пары: логин и пасс - сразу запросом к БД осуществлять.
need_million
30.05.2010, 00:10
Μαφία, я что то не понял.
а если я логина не знаю.
Μαφία, я что то не понял.
а если я логина не знаю.
Дык у клиента кому делаешь софт спроси.
Если надо массово то можно, например, вот так:
При первом запуске клиенту предложить вписать свой логин на ресурсе X.
При последующих запусках просить юзера вводить пароль на ресурсе X, логин мы запомнили на первом шаге, делаем запрос к БД ресурса X, если пароли для данного логина совпадают - запускаем софтину, если нет - оповещаем юзера и просим ввести другой пароль.
Но вот приведенный мной пример потерял саму логику привязки, ибо каждый сможет вписать свой логин и в последующем свой пароль.
Перед тем как отдать прогу клиенту спроси у него его логин (например user123), вбей его в код, т.е. никто не сможет изменить логин. И соответственно программой сможет пользоваться только человек владеющий аккаунтом user123 на твоем ресурсе.
Дык у клиента кому делаешь софт спроси.
Если надо массово то можно, например, вот так:
При первом запуске клиенту предложить вписать свой логин на ресурсе X.
При последующих запусках просить юзера вводить пароль на ресурсе X, логин мы запомнили на первом шаге, делаем запрос к БД ресурса X, если пароли для данного логина совпадают - запускаем софтину, если нет - оповещаем юзера и просим ввести другой пароль.
Добавлю накрыть софт очень серьёзным протектором(Themida)+зашифрова ть важные куски кода.Также весь трафик только по https.И на сервере должна быть дополнительная защита от смены пароля(обязательный ввод старого пароля\ответ на вопрос).
need_million
30.05.2010, 00:39
Μαφία, в этом и трабл клиент, лоховской и боится логин дать.(типо взломаю)
Μαφία, в этом и трабл клиент, лоховской и боится логин дать.(типо взломаю)
Если клиент лоховской, и тебе пофиг на судьбу софтины. сделай как я писал выше :o
При первом запуске клиенту предложить вписать свой логин на ресурсе X.
При последующих запусках просить юзера вводить пароль на ресурсе X, логин мы запомнили на первом шаге, делаем запрос к БД ресурса X, если пароли для данного логина совпадают - запускаем софтину, если нет - оповещаем юзера и просим ввести другой пароль.
:cool:
При последующих запусках просить юзера вводить пароль на ресурсе X, логин мы запомнили на первом шаге, делаем запрос к БД ресурса X, если пароли для данного логина совпадают - запускаем софтину, если нет - оповещаем юзера и просим ввести другой пароль.
Отстой если не сетевая прога, ломиться в интернет для запуска(ну если сетевая то всё ок).
Реестр оптимальный вариант. Но придётся париться с правами. Отнюдь не ко всему в реестре будет доступ.
Отстой если не сетевая прога, ломиться в интернет для запуска(ну если сетевая то всё ок).
Реестр оптимальный вариант. Но придётся париться с правами. Отнюдь не ко всему в реестре будет доступ.
Дык абсурд получается, клиенту нужно юзать пару логин пасс как на ресурсе, при этом он не хочет давать даже логин. Вариант с "привязкой к логину" самый оптимальный в данной ситуации, и пусть ищет инет для проверки пары хоть из космоса.
Если юзать инет - отстой Делай пустышку которая будет запускаться с любой парой login pass.
Есть еще третий вариант, шли его.
эмм...
А елси при запуске софта будет появляться запрос с вводом логина и пароля-эта пара(логин;пароль) отправляется на сервер и если ответ что пара верная то софт работает дальше а если пароль и/или логин не верный то софт прекращает работу.
(обычная аутентификация клиента по логину и паролю через ПО)
Тут и ты не будешь знать ни логина ни пароля клиента.
НО получается это софт не с привязкой и его можно юзать на любом ПК как клиент для сайта.
ТС стучи в ЛС,раньше сам с такими вопросами мучался.
need_million
30.05.2010, 02:02
делись тут, а если не хочешь пиши в личку..
я тут подумал ещё над такой темой.
отдаю клиенту прогу он сам вводит логин и пароль.
он залогинивается и в определенное место в нете отправляется его к примеру только логин(я типо чесный) и последущее разы просто сверяется с нетом. и в программе какой то ИД. 1 ИД 1 акк.
.... определенное место в нете отправляется его к примеру только логин(я типо чесный) и последущее разы просто сверяется с нетом. и в программе какой то ИД. 1 ИД 1 акк.
С этого места перестал тебя понимать-)
А почему не катит вариант:
Клиент первый раз запускает ПО.
ПО просит логин и пароль.
ЛОгин и пароль отсылаются на сайт и там проверяются на валид и
если логин и пароль верный,то записать их в реестр и использовать при следующих запусках программы.
Так ты не узнаешь что ввёл клиент.
POS_troi
30.05.2010, 02:19
По запросу клиента формируй файл в котором будет содержаться логин и пароль , шифоуй каким нить алгоритмом (можно тупо логин открыто + пароль в MD5 + все это в Base64).
Клиент скачивает и сохраняет данный файл в папку с программой , потом при каждом запуске расшифровывать все это и спрашивать у клиента пароль , шифровать в MD5 и сверять с хэшем из файла..
Как-то так =)
need_million
30.05.2010, 09:29
откуда скачивает?
реестр не выход с ним возьни много, и на другом компе человек свободно запустит эту программу.
откуда скачивает?
реестр не выход с ним возьни много, и на другом компе человек свободно запустит эту программу.
Скачивает оттуда, куда ты зальешь файл :cool:
Вообще клиента головой об стену за такие просьбы.
Единственный вариант тогда - дать ему исходники, пусть сам пароль вобьет и скомпилит
POS_troi
30.05.2010, 10:01
Единственный вариант тогда - дать ему исходники, пусть сам пароль вобьет и скомпилит
ну или компилить сразу на серваке =)
Можно сделать так:
даем клиенту прогу, которая по некоторому крипто алгоритму зашифрует его пароль (в этот же момент генерируется закрытый ключ, которым можно будет расшифровать полученный хэш пароля),
после этого клиент передаст вам (разработчику) зашифрованный пароль. Вы его вбиваете в свой код, собираете проект и передаете клиенту. Клиент при первом запуске вводит свой закрытый ключ, которым будет расшифрован хэш (т.е. получен чистый пароль, который можно использовать в алгоритме работы самой программы)
Здесь несколько моментов:
- выбор крипто алгоритма
- привязка хэша к проге. В зависимости от языка, на котором пишется прога, это можно сделать с разной степенью надежности.
Вообще клиента головой об стену за такие просьбы.
Единственный вариант тогда - дать ему исходники, пусть сам пароль вобьет и скомпилит
Вообще складывается впечатление что ТСу нужно что то иное что он не описывает, и пытается найти решение так сказать не паля самой сути. Причина такого поведения - хз.
Либо ТС и есть заказчик, который не может дать четкое ТЗ кодеру и хочет сделать своего рода привязку какую то.
Будь бы я кодером:
не стал бы тратить время на подобные глупые вопросы
клиента головой об стену :P
Заметьте, ТС в предыдущих постах вообще слабо понимает что такое реестр и как туда записать данные, и называет этот процесс слишком сложным. :confused:
CraftR14
30.05.2010, 11:09
имхо ТС либо сам заказчик, либо качнул где то левые сорсы и пытается их доделать, но не знает как, и с реестром не умеет работать :( и теперь придумывает....
..эт личное мое имхо.
а так Реестр лучший вариант, главное хорошо обмазговать и зашифровать алгоритм.
M_script_
30.05.2010, 11:11
Сделай проще. Просто храни логин/пароль в реестре в открытом виде.
При запуске программа проверяет наличие нужного ключа реестра и если его нет, то просит ввести логин/пароль. После ввода создаешь ключ, сохраняешь данные и все.
need_million
30.05.2010, 11:28
При запуске программа проверяет наличие нужного ключа реестра и если его нет, то просит ввести логин/пароль. После ввода создаешь ключ, сохраняешь данные и все.
и так любой и на каждой машине.
ещё раз напишу что надо.
есть сайт swblife.com.
Я написал под неё программу(я лично, не у кого не чего не скачивал и не воровал)
Я хочу что бы одна копия программы могла работать только с одной анкетой с этого сайта.
1 копия программы - 1 акк.
так как знаю этих сетевиков и пирамидчиков. они у меня купять а своим ещё за дороже продадут.
need_million можно сравнивать сорец страницы и например проверять имя аккаунта(или какую-то уникальность страницы пользователя).Если он подходит дальше работаем,нет завершение работы. :)
на чем писал прогу? как тебе мой вариант?
need_million
30.05.2010, 11:49
Kaas, я не заметил твою версию.
а она очень хороша!
значит так, дать пользователю программу в которую он введет логин\пароль и ключ.
это все шифруется, и открыть можно будет только зная ключ. и все хоршо!
теперь ещё сложней, я с крипто вообще не чего не умею делать, где почитать можно?
не чего сложного не надо.
язык C#
POS_troi
30.05.2010, 11:51
Ну тогда могу предложить такой вариант:
Делаеш систему серийников на основе ID железа (допустим винта)
При первом запуске прога спрашивает логин и просит отправить разработчику некий хэш (сгенереный из ID железа и логина)
Ты при получении хэша генериш серийник и отдаеш клиенту
Клиент вводит серийник в прогу
прога прописывает где нить серийник,логин и далее использует для проверки при запуске
Имеем, возможность запуска только на одном компе и толко для одного логина
need_million
30.05.2010, 11:59
ну вот на одном компе это перебор, челвоек же может и с работы сидеть. тут имено с одной анкеты,
но как для компа и логина это гуд.
>> прога прописывает где нить серийник,логин и далее использует для проверки при запуске
Cамое узкое место, как и в моем варианте( когда разработчик забивает хэш пароля в проге)
тк в IL все это довольно неплохо светится (ну относительно, смотря насколько хороший обфускатор будет).
Если кто нить знает как c# прогу в этом месте надежно защитить - выслушаем с удовольствием:)
>>дать пользователю программу в которую он введет логин\пароль и ключ
Ключ не клиент вводит, этот ключ генерится криптоалгоритмом на основании пароля, который мы скармливаем криптоалгоритму (называется закрытый ключ).
Т.е. после работы этой крипто проги клиент получает хэш своего пароля и закрытый ключ, которым можно расшифровать пароль.
Почитать в гугле на тем Криптография с открытым/закрытым ключом, там наверняка должны быть реализации некоторых алгоритмов.
Про проблемы с C# я написал выше)
POS_troi
30.05.2010, 12:05
Ну всеравно идеально будет система - "Мы вам хэш а вы нам серийник " ну или что нить из RSA
Как вариант можно генерить и сравнивать вообще другой прогой, которая незаметно будет лежать гдето в system32 ;)
CraftR14
30.05.2010, 12:13
мммм...! У меня есть идея ;) Тупо делать Регу по какому то коду и если активация к примеру прошла по 1231231233sdq2134 серийному ключу то мы записываем в БД. и как токо активируется прога то она закрепляется в железо и создает уникальный файлик который потом будет проверять при входе в прогу.
а если нада будет еще кому то прогу дать то ты в БД создаеш новый ключик к примеу 23621bhsf и даеш его юзернамеру и он понему регается и опять все записывается взеде и под железо.
такой способ хорошо контролировать и кейген тут не сделаеш ;)
need_million
30.05.2010, 12:15
а md5 не подойдет.
клиент вводит login_password_key md5 и пересылает мне.
я забиваю в программу.
я смогу же расшифровать md5 обратно? или md5 - это тольков одну сторону...
.............................
стоп
.............................
так можно же ещё проще. человек вводит логин и пароль они шифруются через md5.
я вшиваю в прогу, и теперь каждый раз будет проверятся...
з.ы лично мне такой вариант очень подходит. извеняюсь если кто то уже такое говорил.
.............................
так можно же ещё проще. человек вводит логин и пароль они шифруются через md5.
я вшиваю в прогу, и теперь каждый раз будет проверятся...
з.ы лично мне такой вариант очень подходит. извеняюсь если кто то уже такое говорил.
А как в таком случае получить чистый пароль, чтобы использовать в алгоритме работы программы? ну там для авторизации и тп. Если для этого сайт позволяет юзать md5 хэш - то фактически ты знаешь пароль (ну можешь его изменить), поэтому задача не выполнена
need_million
30.05.2010, 12:21
сайт не поддерживает, ну хорошо тогда с ключем дополнительным.
чистый пароль вводит пользователь я его шифрую и сравниваю с забитым в программе.
сайт не поддерживает, ну хорошо тогда с ключем дополнительным.
чистый пароль вводит пользователь я его шифрую и сравниваю с забитым в программе.
да, так покатит
need_million начинаю сомневаться что ты программист.
Сделай самую обычную привязку программы.Предложили много вариантов.
если софт привязался то пусть спрашивает логин и пасс.
Не хочешь с реестром работать то работай с файлами.
Тебе на 5 страниц накатали вариантов а тебе все не так.
Ты что-то недоговариваешь. . . .
need_million
30.05.2010, 14:31
вообще то уже 2-3 страницу обсуждаем то что подходит.
сомневайся дальше =)
мне обычная не подходит! хотя не знаю что под твоими словами обычная
Обычная:
Клиент запускает софт:
-софт генерит уникальный ключ
-ключ клиент даёт автору
-автор после получения ключа геренрит уникальный код.
-код клиент в пописывает в софт и софт привязывается к ПК
-ну а дальше при последующих запусках программа уже просит логин и пароль для подключения к серверу/сайту.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot