Другие языки программирования и технологии
Кто может написать программу, чтоб она требовала пароль, который никак не узнать пользователю, он закодирован, ..
... и которая будет выдавать информацию пользователю только при правильном вводе. Пароль оттуда только я знаю.
Ну я могу!
Но, только вы, Георгий, тоже не будете знать пароля…
Не к чему он вам ;–)
Но, только вы, Георгий, тоже не будете знать пароля…
Не к чему он вам ;–)
Поступить так, как это применяется в любых архиваторах - защищаемые данные шифруются каким-нибудь симметричным алгоритмом наподобие AES, а ключ вычисляется из пароля. В итоге если пароль не знать - то и данные из программы не вытащить никак, пароль тоже никак не вытащить. Если пользователь введёт неправильный пароль - то на выходе вместо нужных данных он получит случайный набор байт.
Чтобы осложнить перебор пароля - функция вычисления ключа из пароля должна быть как можно более медленной - например, N раундов хэширования, причём число N должно быть порядка миллиона или даже миллиарда, дабы даже одна итерация заняла прилично времени (если, допустим, займёт 100 милисекунд - то злоумышленник сможет за секунду перебрать только 10 вариантов пароля, что очень медленно, а для легального пользователя эти 100 милисекунд будут незаметны практически совсем). Естественно, если будете изобретать велосипед с хэшированием - то убедитесь, что хэш-функция возвращает результат в виде бинарного массива, а не в виде 16-ричной строки, а также длина этого хэша достаточная - например, если криптоалгоритм требует 256-битные ключи, то в качестве хэш-функции логичнее использовать sha256, который на выходе как раз эти 256 бит и даёт, если нужная длина ключа меньше - всё равно можно брать хэш-алгоритм с большей длиной, но от результата использовать только нужное число бит, сколько надо получить в ключе.
Чтобы осложнить перебор пароля - функция вычисления ключа из пароля должна быть как можно более медленной - например, N раундов хэширования, причём число N должно быть порядка миллиона или даже миллиарда, дабы даже одна итерация заняла прилично времени (если, допустим, займёт 100 милисекунд - то злоумышленник сможет за секунду перебрать только 10 вариантов пароля, что очень медленно, а для легального пользователя эти 100 милисекунд будут незаметны практически совсем). Естественно, если будете изобретать велосипед с хэшированием - то убедитесь, что хэш-функция возвращает результат в виде бинарного массива, а не в виде 16-ричной строки, а также длина этого хэша достаточная - например, если криптоалгоритм требует 256-битные ключи, то в качестве хэш-функции логичнее использовать sha256, который на выходе как раз эти 256 бит и даёт, если нужная длина ключа меньше - всё равно можно брать хэш-алгоритм с большей длиной, но от результата использовать только нужное число бит, сколько надо получить в ключе.
информацию зашифровать с ключом на основе правильного пароля. выдавать результат расшифровки по введенному паролю.
ЗЫ. Требование "никак не узнать пользователю" - невыполнимо. тот же "брутфорс" никто не отменял.
ЗЫ. Требование "никак не узнать пользователю" - невыполнимо. тот же "брутфорс" никто не отменял.
Виктор Балихин
Забрутить сложный пароль не получится.
А в чем, собственно, проблема? В генерации пароля?
Виктор Балихин
В написании скрипта.
Похожие вопросы
- Нужно написать программу в делфи....не могу сама никак
- Программист написал программу и допустил маленькую ошибку, которую сам не заметил. Через какое время пользователь
- На каком языке написаны программы, ну те, с помощью которых на компе мы слушаем музыку, или смотрим фильмы?
- Напишите программу на языке программирования Паскаль, . которая вычисляет дискриминант квадратного уравнения
- <<ПОМОГИТЕ! НАПИСАТЬ ПРОГРАММУ НА СИ ИЛИ ПАСКАЛЕ КОТОРАЯ ВЫВОДИТЬ СУММУ ЦИФР ЧИСЛА ОТ 1 ДО N
- Нужно написать программу, на нахождения бессектрисы треугольника, если пользователем задано длину плз напишите прогу С++
- c++ цикл: for Написать программу, которая выводит на экран все числа в диапазоне указанном пользователем.
- Как написать программу на Delphi программа которая бы постоянно висело в памяти и через определенное
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- 1. Написать программу, которая заполняет массив целых чисел размеров 20 элементов значениями роста учащихся (случайные ч