Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 138

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

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

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

П.С. можно ли будет потом изменить зашрифораный логин и пароль через отдельно написанную функцию ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2013, 02:55
Ответы с готовыми решениями:

Авторизация
Привет. Проблема такова на сайте при регистрации или авторизации ничего не происходит когда нажимаешь на кнопку. 104 и 76 строки вроде....

Авторизация в БД
Доброго всем дня. Я здесь новичок, прошу сильно не пинать если что не так °°) У меня в общем вот такой вопрос (заранее оговорюсь что...

авторизация
Возникла проблема! Никак не могу понять почему строку username нельзя передавать, а только жестко прописывать в кавычках? со строкой...

16
☆ Форумчанин(FSC)☆
 Аватар для 2ima
911 / 292 / 27
Регистрация: 28.04.2013
Сообщений: 2,466
Записей в блоге: 10
10.10.2013, 08:20
замена букв?
0
 Аватар для AnyOne697
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
10.10.2013, 12:43
А зачем хранить логин и пароль. Такое делать ни в коем случае нельзя, ведь можно будет дезассемблировать программу, посмотреть куда она сохраняет и расшифровать логин и пароль.
Используй стойкие хэши. ЕМНИП, это должно подойти.
0
0 / 0 / 0
Регистрация: 08.04.2013
Сообщений: 138
10.10.2013, 13:16  [ТС]
AnyOne697, но в переменных хранить мне тоже не вариант ибо ещё надо сделать функцию для изменения логина и пароля и соответственно при новом заходе в программу должны уже использоваться новый логин и пароль. А судя из ссылки которую ты дал, она не подходит мне
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
10.10.2013, 13:18
neic777, Логин сохраняется как есть. Для пароля хранится хэш. При попытке логина переданный пароль хешируется и хеши сверяются. При изменении пароля сверяем хэши старого и переданного, устанавливаем новый (сохраняем хэш) и радуемся.
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
10.10.2013, 13:25
Цитата Сообщение от neic777 Посмотреть сообщение
П.С. можно ли будет потом изменить зашрифораный логин и пароль через отдельно написанную функцию ?
Обычно используеться необратимое шифрование, так что потом после зашифровки уже расшифровать нельзя. От пользователь например регистрируется шифруется пароль например по md5 алгоритму необратимо, и хешь сохраняется в текстовом файле, затем когда входит пользователь он вводит пароль который снова шифруется по md5 и хеши сравниваются, если они одинаковы, то пользователь входит куда нужно (flag ставим в true какой нить).
Хеши если своруют их потом еще расшифровать нужно, и можно только методом перебора и вообще еще нужно знать алгоритм по которому они были получены. У меня слово из 6 символов минут 5 перебирает, а если пароль из 10 символов, то программа должна непрерывно работать мб день два, а мб и недели.
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
10.10.2013, 13:47
Цитата Сообщение от ForEveR Посмотреть сообщение
Для пароля хранится хэш
А в каком виде? Если можно простенький пример или ссылку на сам механизм.

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

P.P.S.
Цитата Сообщение от ninja2 Посмотреть сообщение
необратимое шифрование
к сожалению нету таких.
(см. первое правило криптографии)
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
10.10.2013, 14:18
Цитата Сообщение от SatanaXIII Посмотреть сообщение
к сожалению нету таких.
(см. первое правило криптографии)
Как это нету, я читал за шифрование еще когда пхп учил, там бывает два вида шифрования обратимое и не обратимое, например md5 это необратимое шифрование, получившийся хешь уже нельзя расшифровать. И есть обратимое, когда данные шифруются и заново хешь можно расшифровать. Для паролей как правило используют необратимое шифрование.
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А в каком виде? Если можно простенький пример или ссылку на сам механизм.
P.S. Вот нашел забавную статейку про "подсаливание хэшей": Как лучше хранить хэши паролей.
Ну как в каком виде? Просто в виде строки, эта строку пофигу куда ты запишешь, где хочешь там ее и хрони, хочешь в БД храни, хочешь в текстовый файл пиши. Ну в принципе тебе нужно что бы определить какой хешь принадлижит юзеру, хронить идентификатор юзера, или полностью строку запиши имя юзера и через пробел хешь сохранил, и так весь текстовый файл,. Для примера пофигу где он сохранить, а вообще нужно если в файле по аналогии с БД создать первичные ключ, что бы привязывать все данные пользователя к этому ключу, когда он авторизуется выдавать ему по этому ключу данные, ну например файл с паролями хронятся данные в виде:
1 / ninja2 / ksadjflsadjdlfsdfasdfjksadjfaksdjfladskj flkasdjflkasdjflksadjlfjasd
2 / ForEveR / sadkfjsdlfjlsadkjflksadjflkasdjflkadsjfl ksadjlkfjsadlkfjsadklfjlsajf
3 / Satana XIII / ksdfjlsakjflksajdfkljsadlkfjsadkjfksadjf lksdjlkfjsadlkfjkasdjflsdf

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

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

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

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

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

Добавлено через 6 минут
Вот еще вариант:
Радужная таблица
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
10.10.2013, 15:50
Добавлено через 6 минут
Цитата Сообщение от iRomul Посмотреть сообщение
MD5 можно обратить, однако существует множество различных данный с одинаковым хешем, по-этому из результатов обратного хеширования еще нужно отыскать нужны вам данные.
Аха ха и какая ж функция есть для расшифровки? Для обратимых алгоритмов шифрования всегда есть функция которой можно расшифровать хеш, а в мд5????
0
Антикодер
Эксперт функциональных языков программирования
1888 / 870 / 48
Регистрация: 15.09.2012
Сообщений: 3,088
10.10.2013, 16:02
я вместо md5 использую хэш по алгоритму Blowfish
но можно и ГОСТами хэши создавать, это тоже надёжнее чем md5, ещё нужно почитать про "соль" при хэшировании пароля.
главное определиться с алгоритмом и найти нужную библиотеку, если интересно можно и самому написать, но вероятность взлома для самописной реализации выше, чем проверенной. после авторизации нужно использовать механизм сессий.
0
 Аватар для iRomul
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
10.10.2013, 16:03
ninja2, как-то так
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
10.10.2013, 16:12
iRomul, аха это ж перебор, а если у меня будет пароль из 15 букв ты его никогда не обратишь. Они там не расшифровывают, а наоборот шифруют готовые слова и сравнивают с существующим хешем, потому что это необратимое шифрование, назад его невозможно расшифровать. Нету алгоритма дешифрования.
0
 Аватар для iRomul
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
10.10.2013, 16:14
ninja2,

Не по теме:

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

0
10.10.2013, 16:16
 Комментарий модератора 
ninja2, я все видел.
0
 Аватар для AnyOne697
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
10.10.2013, 21:49
Цитата Сообщение от ninja2 Посмотреть сообщение
Аха ха и какая ж функция есть для расшифровки? Для обратимых алгоритмов шифрования всегда есть функция которой можно расшифровать хеш, а в мд5????
Online Decrypter
Вы отстали от жизни.
Цитата Сообщение от ForEveR Посмотреть сообщение
Логин сохраняется как есть. Для пароля хранится хэш.
Не обязательно. Можно (и обычно всё же нужно) хэшировать и логин. Просто обычно логин сохраняется и в первозданном виде. А иногда используют хэш-функцию от пары логин-пароль, чтобы усложнить подбор коллизии.

Добавлено через 1 час 5 минут
Алерт. Статья конечно неплохая, но акцент лучше оставить именно на этом. Суть в том, что MD5 очень неустойчив к аттакам на коллизии. А если вспомнить, что паролей не так уж и много (для полного перебора), то очевидно, что можно довольно быстро перебрать все возможные пароли и относительно быстро найти коллизию (или исходный пароль).
0
Саморазвитие <3
 Аватар для Djam
34 / 24 / 1
Регистрация: 28.12.2012
Сообщений: 235
Записей в блоге: 1
11.10.2013, 09:18
http://md5list.ru/ расшифровка md5, из N количества раз, а N > 100 , 1 раз не получилось пароль расшифровать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2013, 09:18
Помогаю со студенческими работами здесь

Авторизация на C++
Помогите написать код авторизации на C++ (с переходом на другую форму).

Авторизация в БД
Добрый день! Имею таблицу Users. Там есть поля Username и Password. Есть форма с двумя textBox. (1-ая Username, 2-ая Password и...

авторизация
На сколько безопасна такая авторизация &lt;? include(&quot;conf.php&quot;); if(isset($_POST)){ $log =$_POST; $pass =md5($_POST); $avtoriz...

Авторизация на hh.ru
Всем привет. Нужна помощь. Нужно авторизоваться на сайте hh.ru с помощью python3 и requests

Авторизация
Здравствуйте! Помогите пожалуйста ссылкой Нашел на форуме https://www.cyberforum.ru/asp-net/thread162493.html#post932535 статью про...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru