Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
neic777
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 138
#1

Авторизация в С++ - C++

10.10.2013, 02:55. Просмотров 1700. Ответов 16
Метки нет (Все метки)

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

П.С. можно ли будет потом изменить зашрифораный логин и пароль через отдельно написанную функцию ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2013, 02:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Авторизация в С++ (C++):

Авторизация mail.ru - C++
Здравствуйте, нужно спарсить вот эту страницу https://my.mail.ru/community/feed_brain/friends?page=2 но для того что бы спарсить нужно...

Авторизация в консоли - C++
Привет всем! Наткнулся на одну интересную мысль, как авторизация в консоли с несколькими пользователями, каждому из которых соответствуют...

Авторизация на прокси - C++
Пишу на С программу, забирающую определенное число с веб-страницы (температуру). Все работает. Добавил работу через прокси. Работает. А вот...

Авторизация vk.com и отправка сообщения - C++
Может, кто-нибудь подкинет правильное направление ? )))

Авторизация под https - C++
Как переделать код авторизации с HTTP на HTTPS? Внизу листинг. Как я понимаю разница в адресе. using System; using...

Авторизация но на сайте javascripts - C++
Ув.Форумчане, хотел спросить, вот я хочу создать авторизацию на сайт. Допустим что-бы авторизоваться на сайт vk.com, все давно легко Я...

16
2ima
☆ Форумчанин(FSC)☆
910 / 289 / 9
Регистрация: 28.04.2013
Сообщений: 2,393
Записей в блоге: 10
Завершенные тесты: 1
10.10.2013, 08:20 #2
замена букв?
0
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
10.10.2013, 12:43 #3
А зачем хранить логин и пароль. Такое делать ни в коем случае нельзя, ведь можно будет дезассемблировать программу, посмотреть куда она сохраняет и расшифровать логин и пароль.
Используй стойкие хэши. ЕМНИП, это должно подойти.
0
neic777
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 138
10.10.2013, 13:16  [ТС] #4
AnyOne697, но в переменных хранить мне тоже не вариант ибо ещё надо сделать функцию для изменения логина и пароля и соответственно при новом заходе в программу должны уже использоваться новый логин и пароль. А судя из ссылки которую ты дал, она не подходит мне
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
10.10.2013, 13:18 #5
neic777, Логин сохраняется как есть. Для пароля хранится хэш. При попытке логина переданный пароль хешируется и хеши сверяются. При изменении пароля сверяем хэши старого и переданного, устанавливаем новый (сохраняем хэш) и радуемся.
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.10.2013, 13:25 #6
Цитата Сообщение от neic777 Посмотреть сообщение
П.С. можно ли будет потом изменить зашрифораный логин и пароль через отдельно написанную функцию ?
Обычно используеться необратимое шифрование, так что потом после зашифровки уже расшифровать нельзя. От пользователь например регистрируется шифруется пароль например по md5 алгоритму необратимо, и хешь сохраняется в текстовом файле, затем когда входит пользователь он вводит пароль который снова шифруется по md5 и хеши сравниваются, если они одинаковы, то пользователь входит куда нужно (flag ставим в true какой нить).
Хеши если своруют их потом еще расшифровать нужно, и можно только методом перебора и вообще еще нужно знать алгоритм по которому они были получены. У меня слово из 6 символов минут 5 перебирает, а если пароль из 10 символов, то программа должна непрерывно работать мб день два, а мб и недели.
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
10.10.2013, 13:47 #7
Цитата Сообщение от ForEveR Посмотреть сообщение
Для пароля хранится хэш
А в каком виде? Если можно простенький пример или ссылку на сам механизм.

P.S. Вот нашел забавную статейку про "подсаливание хэшей": Как лучше хранить хэши паролей.

P.P.S.
Цитата Сообщение от ninja2 Посмотреть сообщение
необратимое шифрование
к сожалению нету таких.
(см. первое правило криптографии)
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.10.2013, 14:18 #8
Цитата Сообщение от SatanaXIII Посмотреть сообщение
к сожалению нету таких.
(см. первое правило криптографии)
Как это нету, я читал за шифрование еще когда пхп учил, там бывает два вида шифрования обратимое и не обратимое, например md5 это необратимое шифрование, получившийся хешь уже нельзя расшифровать. И есть обратимое, когда данные шифруются и заново хешь можно расшифровать. Для паролей как правило используют необратимое шифрование.
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А в каком виде? Если можно простенький пример или ссылку на сам механизм.
P.S. Вот нашел забавную статейку про "подсаливание хэшей": Как лучше хранить хэши паролей.
Ну как в каком виде? Просто в виде строки, эта строку пофигу куда ты запишешь, где хочешь там ее и хрони, хочешь в БД храни, хочешь в текстовый файл пиши. Ну в принципе тебе нужно что бы определить какой хешь принадлижит юзеру, хронить идентификатор юзера, или полностью строку запиши имя юзера и через пробел хешь сохранил, и так весь текстовый файл,. Для примера пофигу где он сохранить, а вообще нужно если в файле по аналогии с БД создать первичные ключ, что бы привязывать все данные пользователя к этому ключу, когда он авторизуется выдавать ему по этому ключу данные, ну например файл с паролями хронятся данные в виде:
1 / ninja2 / ksadjflsadjdlfsdfasdfjksadjfaksdjfladskjflkasdjflkasdjflksadjlfjasd
2 / ForEveR / sadkfjsdlfjlsadkjflksadjflkasdjflkadsjflksadjlkfjsadlkfjsadklfjlsajf
3 / Satana XIII / ksdfjlsakjflksajdfkljsadlkfjsadkjfksadjflksdjlkfjsadlkfjkasdjflsdf

А данные пользователей хронятся в другом файле например файл user_data.txt
1 / Гуру С++ / Харьков / 1
2 / moderator / город / 3
3/ moderator / / 2

Примерно так, при аторизации мы вытягиваем с первого файла (таблицы) идентификатор (первичный ключь) и допустим записываем в флаг который показывает что пользователь авторизован, а в фале user_data.txt мы уже ищем запись которая соответствует флагу, от если у нас идентификатор будет 3, то из файла мы должны вырвать строку 2 / modrator / город / 3, тут последний столбец это вторичный ключь, типо базы данных.

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

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

Ладно разбирайся это тебе не просто так, в двух словах не расскажешь, это целая тема, это я так просто убогий примерчик привел, что бы понятно было примерно как все работает.
0
iRomul
159 / 100 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
10.10.2013, 15:36 #9
Цитата Сообщение от ninja2 Посмотреть сообщение
Как это нету, я читал за шифрование еще когда пхп учил, там бывает два вида шифрования обратимое и не обратимое, например md5 это необратимое шифрование, получившийся хешь уже нельзя расшифровать. И есть обратимое, когда данные шифруются и заново хешь можно расшифровать. Для паролей как правило используют необратимое шифрование.
MD5 можно обратить, однако существует множество различных данный с одинаковым хешем, по-этому из результатов обратного хеширования еще нужно отыскать нужны вам данные.

Добавлено через 6 минут
Вот еще вариант:
Радужная таблица
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.10.2013, 15:50 #10
Добавлено через 6 минут
Цитата Сообщение от iRomul Посмотреть сообщение
MD5 можно обратить, однако существует множество различных данный с одинаковым хешем, по-этому из результатов обратного хеширования еще нужно отыскать нужны вам данные.
Аха ха и какая ж функция есть для расшифровки? Для обратимых алгоритмов шифрования всегда есть функция которой можно расшифровать хеш, а в мд5????
0
XRuZzz
Антикодер
680 / 582 / 29
Регистрация: 15.09.2012
Сообщений: 2,525
10.10.2013, 16:02 #11
я вместо md5 использую хэш по алгоритму Blowfish
но можно и ГОСТами хэши создавать, это тоже надёжнее чем md5, ещё нужно почитать про "соль" при хэшировании пароля.
главное определиться с алгоритмом и найти нужную библиотеку, если интересно можно и самому написать, но вероятность взлома для самописной реализации выше, чем проверенной. после авторизации нужно использовать механизм сессий.
0
iRomul
159 / 100 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
10.10.2013, 16:03 #12
ninja2, как-то так
0
ninja2
231 / 187 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.10.2013, 16:12 #13
iRomul, аха это ж перебор, а если у меня будет пароль из 15 букв ты его никогда не обратишь. Они там не расшифровывают, а наоборот шифруют готовые слова и сравнивают с существующим хешем, потому что это необратимое шифрование, назад его невозможно расшифровать. Нету алгоритма дешифрования.
0
iRomul
159 / 100 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
10.10.2013, 16:14 #14
ninja2,

Не по теме:

прости меня, о великий гуру

0
SatanaXIII
10.10.2013, 16:16     Авторизация в С++
  #15
 Комментарий модератора 
ninja2, я все видел.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2013, 16:16
Привет! Вот еще темы с ответами:

Связь и авторизация на сайте - C++
Здравствуйте, хотел бы поинтересоваться, как с помощью C++ и возможно ли вообще допустим авторизоваться на сайте. Например у меня есть 2...

Авторизация логин-пароль - C++
Программа содержит массив строк, каждая из которых представляет собой запись об учетной записи пользователя, а каждое поле отделяется от...

Простейшая авторизация в программе - C++
нужно разработать программу, которая вводит имя пользователя, затем вводит пароль звездочками. (имя пользователя: - ваня, пароль -...

Авторизация на сайтах, почему не работает? - C++
нашёл код, и вроде бы у всех работает, а у меня нет, результат выполнение - страничка где авторизовываться, значит он не смог...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.10.2013, 16:16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru