Криптография
Мне нужно зашифровать пароли и я не знаю в какую сторону мне нужно копать. Подскажите!
Советовал бы попробовать в гугле набрать "системы шифрования криптография"
Советовал бы попробовать в гугле набрать "системы шифрования криптография"
Для надежности используй уже созданные алгоритмы шифрования, а не используй свой. Алгоритмов шифрования существует очень много, различающие степенью надежности и сложностью реализации.
Мне нужно зашифровать пароли и я не знаю в какую сторону мне нужно копать. Подскажите!
1.Если тебе нужно сокрыть пароль от пользователя средней квалификации - от тетки-бухгалтерши, до любопытного студента недоучки, а это в 95% случаях достаточно! То работает безупречно шифрование по маске XOR (на ассемблере, очень удобно выполнять, если знаком с языком) или ^( в С-ной нотации. Это есть так называемое симметричное шифрование, т.е. ключ шифрования, совпадает с ключем дешифровки.
Например,
а. Генератор случайных чисел.
Генерируешь случайную последовательность с использованием штатного (который имеется в С) или самописанного генератора. Полученную гамму ключа накладываеш по маске XOR на пароль. Начальное значение всей гаммы и есть ключь шифра! Его можно отдельно генерировать или использовать постоянное значение, но прятать нужно хорошо.
b. С подсчетом частичной контрольной суммы ключа.
Ну например, выбораешь начальное значение ключа, накладываешь его по маске XOR на первый байт ключа, делее прибавляешь его к неизменеммному первому байту ключа, и накладываешь на второй и т.д. В общем здесь вариаций могут бать масса. От самой простой, которую я описал до весьма серьезных.
с. Простая маска XOR. Я использать рекомендую только для защиты от теток-бухгалтерш и до ученика 8-го классса с двойкой по математике. Постоянная последовательность байт накладывается но маске XOR на пароль.
d. Перестановочное шифрование (не симметроичное). Серьезные алгоритмы можеши поискать в инете, а простой можешь придумаь сам. Смысл такой, по определенному алгоритму перестанавливаешь местами во входной последовательность байы, биты, слова ( в общем случае блоков). Можно скомбинировать с XOR.
e. Я предпочитаю зашифрованные пароли не хранить, а хранить хэшь суммы паролей (упрощенно контрольные суммы паролей). В этом случае, нет необходимости держать ключ для расшифровки и самое главное такой подход не дает злоумышленнику механизма из хэшь суммы извлечь пароль.
f. может что-то еще упустил из простых алгоритмов. Сейчас не припомню, но в большинстве случаев вышеперечисленых алгоритмов хватает для создания собственной несложной системы шифрования. Дополню, часто эти алгоритмы не используют в чистом виде, а смешиваюи и комбинируют.
2. Если ты настроен работать с паролями по-серьезному и уровень студента недоучки тебя не устраивает, то надо серьезно учить матчасть по алгоритмам шифрования (можешь начать с DES-он сравнительно легок в изучении и реализации, но хорошо программируем, на ассемблере, для мазохистов на С) + хорошие знания ассемблера.
Надеюсь я дал тебе направление для дальнейшего поиска информации по шифрованию.
Андрей.
1.Если тебе нужно сокрыть пароль от пользователя средней квалификации - от тетки-бухгалтерши, до любопытного студента недоучки, а это в 95% случаях достаточно! То работает безупречно шифрование по маске [color=red]XOR[/color] (на ассемблере, очень удобно выполнять, если знаком с языком) [color=red]или ~( в С-ной нотации.[/color]
И:
(можешь начать с DES-он сравнительно легок в изучении и реализации, но программируем, только на ассемблере,[color=red] для мазохистов на С[/color])+ хорошие знания ассемблера.
Если учесть предыдущую цитату, то очевидны Ваши глубокие познания С. Естественно с такими познаниями делать на нем что-нить серьезное - сущий мазохизм.
Уважаемый, коли хочешь показать свою образованность, то не надо писать глупости, лучше тогда вообще не писать.
И:
Если учесть предыдущую цитату, то очевидны Ваши глубокие познания С. Естественно с такими познаниями делать на нем что-нить серьезное - сущий мазохизм.
Да действительно ошибся. Прошу прощения. Спасибо что заметили. Не часто пользуюсь операторами ~, ^.
А если по существу, кроме этого, какие глупости я написал? Человек, спросил с чего начать, очень легко ответить:"Что сильно умный?" или послать в инет за поиском.
Мне нужно зашифровать пароли и я не знаю в какую сторону мне нужно копать. Подскажите!
Вто сорцы на алгоритм MD5 (VC++ 7)
Человек, спросил с чего начать, очень легко ответить:"Что сильно умный?" или послать в инет за поиском.
Самый нормальный метод. Если я что-нить не знаю совершенно, то за теорией сразу в гугл иду. А вот по практике уже в форуме могу спросить. А пока нет теории в голове - о чем можно говорить? Только о том, что бы кто-то сделал за тебя.