|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.08.2023, 16:23 | #1 |
Пользователь
Регистрация: 06.01.2021
Сообщений: 52
|
Как лучше хранить пароли и реализовать их шифрование (НЕ хэш-функция)
Я новичок на С, пишу тут программку (ну так, чтобы сам бы пользовался ей, ну мб кому-то ещё потом пригодится), которая генерирует пароли. Делаю её по типу компактной утилиты для терминала.
https://github.com/nomadrussian/PSW Сейчас вот генерацию вроде уже сделал, теперь на очереди сохранение на диске и чтение. В общем, храниться они будут в виде пары метка-пароль, и тут у меня возникают некоторые, скажем так, трудности. 1. Как лучше их хранить? Я имею в виду каждая пара в своём файле/всё сразу в одном файле, и если последнее, то как структуризовать файл? Пока думаю просто записывать в файл по меткам, в алфавитном порядке. 2. Думаю ещё нужно добавить алгоритм шифрования, где в роли ключа будет использоваться специальный пароль пользователя. В общем, нужен алгоритм, который получает строку и ключ, а возвращает зашифрованную строку. И в обратном порядке - зашифрованная строка и ключ, а получает исходную строку. 3. Нужно ли усложнять алгоритм генерации, я имею в виду в плане самой случайности, потому что опять же, видел как люди пишут, что генерация через srand/rand и, как я понимаю, time(NULL), где зерно меняется только раз в секунду, тоже сомнительная (мне тут пришлось придумывать различные выкрутасы, чтобы при вызове программы чаще раза в секунду она выдавала различные результаты, и то это не гарантировано). Шифр Цезаря и его вариации - это нет сразу по понятным причинам. Думаю про использование xor - но опять же, пишут, что сомнительно и что он уязвим для атак. Я думал, мб хэшировать пароль пользователя каким-нибудь md5 и использовать уже этот хэш как ключ для xor, ну там подогнав его под длину строки по определённому алгоритму, использовать имя самой метки как соль ну и т.д.. Крч не знаю)) Хочется самому написать. Я это делаю для обучения и чисто из принципа добить проект до конца. Хотелось бы что-то более-менее простое, без необходимости подключать специальные библиотеки для шифрования, как для сложных алгоритмов вроде AES. С другой стороны, кто будет атаковать пользвателя на его собственном компьютере, тем более в Unix/Linux... У меня просто куча разных паролей на разных сайтах, и все ну никак нельзя запомнить. Слишком жёстко. Вот и решил написать заодно для практики, тем более программка вроде очень лёгкая получается. Последний раз редактировалось iXNomad; 15.08.2023 в 16:25. |
15.08.2023, 16:53 | #2 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Цитата:
Начинайте отсюда: https://en.wikipedia.org/wiki/Symmetric-key_algorithm |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
в чем лучше хранить данные? | мастера | Общие вопросы .NET | 12 | 18.05.2017 05:50 |
Где лучше хранить настройки программы | Paleolit | C++ Builder | 6 | 10.06.2012 10:33 |
Drupal где лучше хранить доп. модули | Alexei91 | WordPress и другие CMS | 3 | 13.12.2011 09:26 |
Как лучше хранить фото в базе? | GenniY | Свободное общение | 0 | 19.07.2010 10:35 |