Russian Qt Forum
Ноябрь 24, 2024, 21:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Как зашифровать и засунуть в файл пароль  (Прочитано 14369 раз)
linuxoid
Гость
« : Сентябрь 07, 2007, 10:43 »

Как зашифровать пароль?я буду сохранять его в файле, а затем нужно будет расшифровать пароль и вытащить из файла.как обращяться с файлами я знаю а вот как зашифровать помогите! Плачущий
Записан
BD
Гость
« Ответ #1 : Сентябрь 07, 2007, 10:59 »

Мне кажется, расшифровывать его не обязательно.
Можно использовать, например, различные хэш функции.
К примеру, пользователь первый раз ввел пароль, ты получил результат хэш-функции от этого пароля и записал в файл.
При следующей попытке входа, ты снова делаешь хэш на введенный пароль и сравниваешь его с хранимым в файле.
Таким образом, пароль остается скрытым. Если надо, могу дать пример использования аналога, где в качестве хэша берется md5.

Если же все-таки необходимо его расшифровывать, придется рыть в сторону криптографических функций типа RSA и др.
В принципе и к этому могу дать пример, все зависит от задачи, которая тебе нужна
« Последнее редактирование: Сентябрь 07, 2007, 11:02 от BD » Записан
Alexandr Az
Гость
« Ответ #2 : Сентябрь 07, 2007, 11:27 »

Фишка в том, что тебе его расшифровывать то и не надо.
Если ты его можешь расшифровать, то и любой другой может расшифровать.
Берешь свой пароль, шифруеш им строку любую (мож своё имя) и получаешь абру кадабру которую записываешь в файл.
Когда юзвер вводит пароль, твоя же строка шифруется с тем, что ввёл юзвер, и получается опять абр кадабра. Вот эту абру кадабру ты и сравниваешь с аброй кадаброй в файле.
Записан
QCasper
Гость
« Ответ #3 : Сентябрь 07, 2007, 12:01 »

Фишка в том, что тебе его расшифровывать то и не надо.
Если ты его можешь расшифровать, то и любой другой может расшифровать.
Берешь свой пароль, шифруеш им строку любую (мож своё имя) и получаешь абру кадабру которую записываешь в файл.
Когда юзвер вводит пароль, твоя же строка шифруется с тем, что ввёл юзвер, и получается опять абр кадабра. Вот эту абру кадабру ты и сравниваешь с аброй кадаброй в файле.

А если пользователю неохота каждый раз пароль вводить и он хочет воспользоваться галочкой save password. Вдруг ему такую фичу надо?
Записан
BD
Гость
« Ответ #4 : Сентябрь 07, 2007, 13:37 »

В этом случае, надо файл с паролями зашифровать, а для этого опять же используются различные криптоалгоритмы
Это уже относится к разделу криптографии, а принципы реализации уже описали

Кстати, функции для шифрования, хэширования и т.п. вещей можно взять из исходников библиотеки OpenSSL,
описание ее http://ru.wikipedia.org/wiki/OpenSSL, там же ссылки на страницу загрузки

Замечательная штука, чтобы че-нидь скрыть Улыбающийся
Записан
Alexandr Az
Гость
« Ответ #5 : Сентябрь 07, 2007, 15:18 »

Кстати, функции для шифрования, хэширования и т.п. вещей можно взять из исходников библиотеки OpenSSL,
описание ее http://ru.wikipedia.org/wiki/OpenSSL, там же ссылки на страницу загрузки

Я думаю для его задачи QCryptographicHash (появилси в 4.3) хватит:

qDebug() << QCryptographicHash::hash("azazello",QCryptographicHash::Md5);
Записан
BD
Гость
« Ответ #6 : Сентябрь 07, 2007, 15:30 »

Блин, не знал, спасибо Улыбающийся
Записан
kurbigor
Гость
« Ответ #7 : Сентябрь 08, 2007, 09:42 »

А если у меня QT3, как можно вывернуться?
Записан
linuxoid
Гость
« Ответ #8 : Сентябрь 08, 2007, 10:25 »

Мне кажется, расшифровывать его не обязательно.
Можно использовать, например, различные хэш функции.
К примеру, пользователь первый раз ввел пароль, ты получил результат хэш-функции от этого пароля и записал в файл.
При следующей попытке входа, ты снова делаешь хэш на введенный пароль и сравниваешь его с хранимым в файле.
Таким образом, пароль остается скрытым. Если надо, могу дать пример использования аналога, где в качестве хэша берется md5.

Если же все-таки необходимо его расшифровывать, придется рыть в сторону криптографических функций типа RSA и др.
В принципе и к этому могу дать пример, все зависит от задачи, которая тебе нужна

дай пожалуйста код Улыбающийся
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #9 : Сентябрь 08, 2007, 11:40 »

А если у меня QT3, как можно вывернуться?


Используй OpenSSL
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
BD
Гость
« Ответ #10 : Сентябрь 08, 2007, 18:56 »

Цитировать
дай пожалуйста код

хэша или шифрования?
Записан
TukiNov
Гость
« Ответ #11 : Сентябрь 09, 2007, 13:59 »

Я например делаю так:
Код:
QString code(char *in,int szin,char *key,int szkey)
{//Код шифрующей функции
    for(int i = 0,t = 0; i < szin; in[i++] ^= key[t++]) if(t >= szkey) t = 0;
    return in;
}
с помощью неё можно и целые файлы шифровать, только чуть переделать нада. Она же и служит и декодировщиком.
« Последнее редактирование: Сентябрь 09, 2007, 14:00 от TukiNov » Записан
linuxoid
Гость
« Ответ #12 : Сентябрь 10, 2007, 08:10 »

может покажешь переделанный код для шифрования?
Записан
QCasper
Гость
« Ответ #13 : Сентябрь 10, 2007, 09:23 »

Я например делаю так:
Код:
QString code(char *in,int szin,char *key,int szkey)
{//Код шифрующей функции
    for(int i = 0,t = 0; i < szin; in[i++] ^= key[t++]) if(t >= szkey) t = 0;
    return in;
}
с помощью неё можно и целые файлы шифровать, только чуть переделать нада. Она же и служит и декодировщиком.

С таким шифром только от детей до 10 дет файлы прятать Улыбающийся И то не от всех Улыбающийся Используйте хотя бы простые потоковые или (лучше) блочные шифры, основанные на генерации последовательностей псевдослучайных чисел.
Записан
kurbigor
Гость
« Ответ #14 : Сентябрь 15, 2007, 00:11 »

На самом деле я просто имитирую команду useradd. Нужно в нее подсунуть пароль в зашифрованном виде. Задача наверняка решённая, судя по наличию графических программ ведения пользователей. man отсылает к функции crypto. Может, кто-то знает ссылку на пример её использования?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.107 секунд. Запросов: 23.