Здравствуйте. Решил ради интереса написать программу, которая как-бы регистрирует пользователя. Необходимо ввести пароль. В случае если условия соблюдаются [Только заглавные и строчные буквы, цифры (обязательно, чтобы они были) и длина пароля не больше 20 символов], то пароль засчитывается. Если нет, то пароль не засчитывается. У меня есть несколько вопросов.
1. Строки 13-26. Например я ввожу 20 символов, жму Enter, затем Cntrl+Z и опять Enter. Почему в итоге у меня получается 21 символ. 21 символ это ‘n’? Но почему же он тогда оказался 21 элементом массива, если у меня по условию в массив вводятся только буквы и цифры. И второй вопрос. Как можно было бы улучшить эту программу? А то как по мне какая-то херотень громоздкая вышла. Хочется улучшить программу.
Спасибо!
#include int main() < int num = 0; //кол-во знаков в пароле int i; //счетчик int password[21]; //пароль int c; //символ int A = 0; //заглавные буквы int a = 0; //строчные буквы int d = 0; //цифры int check = 1; //t/f while ((c = getchar()) != EOF) < if (((c >= ‘0’ c = ‘a’ c = ‘A’ c = ‘A’ c = ‘a’ c = ‘0’ c else if (c!=’n’) check = 0; > if (check == 0) printf(«Fu!»); else if ((A >= 1) (a >= 1) (d >= 1)) < printf(«OK!n»); for (i = 0; i printf(«n»); system(«pause»); return 0; >
Доработанная версия.
Крутой заказ на фрилансе | Подбираем забытый пароль к Excel файлу с помощью Python
#include int main() < int num = 0; //кол-во знаков в пароле int i; //счетчик int password[21]; //пароль int c; //символ int A = 0; //заглавные буквы int a = 0; //строчные буквы int d = 0; //цифры int check = 1; //t/f while ((c = getchar()) != EOF) < if (((c >= ‘0’ c = ‘a’ c = ‘A’ c = ‘A’ c = ‘a’ c = ‘0’ c else if (c!=’n’) check = 0; > if (check == 0) printf(«Fu!»); else if ((A >= 1) (a >= 1) (d >= 1)) < printf(«OK!n»); for (i = 0; i else printf(«FU!»); printf(«n»); system(«pause»); return 0; >
#include int main() < int num = 0; //кол-во знаков в пароле int i; //счетчик int password[21]; //пароль int c; //символ int A = 0; //заглавные буквы int a = 0; //строчные буквы int d = 0; //цифры int check = 1; //t/f while ((c = getchar()) != EOF) < if (((c >= ‘0’ c = ‘a’ c = ‘A’ c = ‘A’ c = ‘a’ c = ‘0’ c else if (c!=’n’) check = 0; > if ((A >= 1) (a >= 1) (d >= 1) (check != 0)) < printf(«OK!n»); for (i = 0; i else printf(«FU!»); printf(«n»); system(«pause»); return 0; >
И да! Еще стоит учитывать, что в этом коде отображаются все мои знания синтаксиса языка. То етсь нужно именно в рамках моих знаний.
Код к задаче: «Программа для ввода пароля»
Листинг программы
#include #include #include #define MAX_PASSWORD_LENGTH (20) const char * REQUIRED_SYMBOLS[] = < «0123456789», «abcdefghijklmnopqrstuvwxyz», «ABCDEFGHIJKLMNOPQRSTUVWXYZ», NULL >; int test_password(const char * s, const size_t maxLength, const char ** dict) < if ( strlen(s) for ( ; *dict strpbrk(s, *dict); ++dict ) ; return ( *dict != NULL ); > return 1; > int main(void)
ГЕНЕРАТОР ПАРОЛЕЙ НА PYTHON ЗА 10 МИНУТ
Источник: studassistent.ru
Надежный пароль с помощью Python
При получении доступа к информационным ресурсам, особенно в условиях удаленной работы нам нередко приходится сталкиваться с придумыванием надежного пароля. А если ресурсов много (корпоративные, публичные, частные и т.п.), и по требованиям кибербезопасности пароли к разным информационным ресурсам тоже должны быть разными, как избежать их повторяемости и избавиться от муки креативности в данном вопросе?
Предлагаем поручить задачу генерации надежного пароля программе на языке Python (пусть у питона голова болит))).
Условия, предъявляемые различными ресурсами, к надежности пароля чаще всего следующие:
- Пароль содержит не менее 12 символов
- Пароль содержит хотя бы одну заглавную букву
- Пароль содержит хотя бы одну строчную букву
- Пароль содержит хотя бы одну цифру
- Пароль содержит хотя бы один спецсимвол
Вот как это можно реализовать с помощью Python:
И при каждом запуске кода, вы будете получать уникальный пароль, соответствующий всем необходимым требованиям.
Источник: vc.ru
Как написать программу для паролей
Здраствуйте, я решил попробовать написать программу для сохранения и вывода паролей ,которые я введу.Эти пароли должны сохранятся в файле znak на диске Д.Вот код программы:
program p7_8; Type znak=record; login:string[100]; password:string[200]; name_pass:string[200]; kod:byte; end; Var res:znak; f:file of znak; n,i:byte; p_m:byte; Procedure create; Var x:char; begin write(‘Vi deistvitelno hotite ydalit stariy fail i sozdat noviy?y/n:’); readln(x); if(x=’n’) then writeln(‘Sozdanie otmeneno!’) else begin rewrite(f); n:=1; repeat writeln(‘Vvedite dannue o’,n,’m cheloveke’); writeln(‘login:’); readln(res.login); writeln(‘password:’); readln(res.password); writeln(‘Ot chego parol?’); readln(res.name_pass); writeln(‘nomer:’); readln(res.kod); write(f,res); write(‘Hotite prodolgit vvod dannih?y/n:’); readln(x); inc(n); until x<>’y’; close (f);readln; end; end; procedure shapka; begin writeln(‘_____________________________________________’); writeln(‘| # |name|znak zodiaka| data rogdeniya |’); writeln(‘_____________________________________________’); end; Procedure viev; var n:byte; begin read(f); n:=1; shapka; while not(eof(f)) do read(f,res); writeln(‘|’,n:3,res.login:15,’| ‘,res.password:20,’ | ‘,res.name_pass:20,’| ‘,res.kod:5,’ |’); inc(n); end; Procedure spisok; var n:byte; name_pass1 : string[20]; begin reset(f); writeln(‘Vvedite nazvanie parolia,naprimer «Origin»:’); readln(name_pass1); n:=1; Shapka; read(f,res); writeln(‘|’,n:3,res.login:15,’| ‘,res.password:20,’ | ‘,res.name_pass:20,’| ‘,res.kod:5,’ |’); inc(n); while not(eof(f)) do begin read(f,res); if(name_pass1[20]>res.name_pass) or(name_pass1=res.name_pass) and(name_pass1>res.name_pass[20]) then begin read(f,res); if(name_pass1[20]>res.name_pass) or(name_pass1=res.name_pass) and(name_pass1>res.name_pass[20]) then inc(n); end; end; if n=1 then write(‘ net cheloveka’); writeln(‘_____________________________________________’); close(f); readln; end; Begin assign(f,’D:znak.txt’); repeat writeln(‘ Menu:’); writeln(‘1.Vvod parolei’); writeln(‘2.Prosmotr faila’); writeln(‘3.Poisk parolei’); writeln(‘4.Dobavlenie parolei’); writeln(‘5.Exit’); writeln(‘ Viberite punkt menu’); readln(p_m); case p_m of 1:create; 2:viev; 3:spisok; 4:add; 5:writeln(‘Do vstrechi!’); else write(‘Neverno.Povtorite popitku!’); end; until p_m=5; readln; end.
Тут ток надо смотреть на процедуру список и креате. Эту прогу я переделал из своей же, программи которая должна делать тоже самое с знаками зодиака.
Вот я ввел 2 имени, 2 пароля и 2 кода ,но по запросу имени 2 пароля выводится сообщение что невозможно прочитать файл наоборот и выводится в таблице 1 пароль.Помогите мне пожалуйсто исправить вывод в этой программе.
Источник: www.programmersforum.ru