Passwort schutz inc benutzer+löschen
-
Also wenn mein Programm gestartet wird soll ein Benutzername und ein Passwort abgefragt werden,dass ich zuvor im Code bestimme...
Wenn dieses nun verwendet wurde soll es automatisch gelöscht und nicht zugänglich sein.
Nur mit einem Admin account soll man wieder einen User anlegen können
-
Ähhhhh... okaaaaay

Zeig mal deine Versuche und lies bitte deine Posts vor'm abschicken nochmal durch, bin nach dem 5. mal lesen noch nicht durchgestiegen.
-
ok, ich fasse mal zusammen, wenn ich es richtig verstanden habe:
Du hast zwei unterschiedliche Kontotypen: Admin und User.
Der Admin kann einen User anlegen. Sobald sich mit diesem Userlogin angemeldet wurde, wird dieser Login für alle folgenden Loginversuche ungültigIst selbstverständlich möglich. Wie genau, kommt drauf an, was du damit lernen willst. Das reicht von simpler Textdatei bis hin zu einer kleinen Datenbank mit verwürfelten und versalzenen Passwörtern
-
#include <iostream> #include <windows.h> #include <ostream> #include <sstream> #include <string> using namespace std; string sInputLogin; string sInputPass; cout << "Login: "; cin >> sInputLogin; cout << "Password for " << sInputLogin << ": "; cin >> sInputPass; if(sInputLogin == "Admin" && sInputPass == "admin") cout << "Login OK" << endl; else{ cout << "Login failed" << endl; return; }
-
sInputPass == "admin"
so bitte nicht...ich bin ja eigtl auch ein freund von strings und deren vergleichen - aber ab und an sollte man die strings nicht in den quellcode schreiben... was zumindest erst mit nem hex-editor und nicht gleich mit notepad zulesen wäre:
bool is_admin(const std::string& name, const std::string& pwd) { const char[] admin_pwd = {'a', 'd', 'm', 'i', 'n', '_', 'p', 'w', 'd'}; const std::size_t length = sizeof(admin_pwd)/sizeof(*admin_pwd); if(pwd.size() != length) return false; return std::equal(pwd.begin(), pwd.end(), &pwd_[0]); } /*...*/ int main() { std::string password_input; std::getline(password_input, std::cin); std::string username_input; std::getline(username_input, std::cin); if(is_admin(username_input, password_input)) std::cout << "hello admin!" << std::endl; else std::cout << "hello 0815-user!" << std::endl; }bb
-
unskilled schrieb:
sInputPass == "admin"so bitte nicht...
ich bin ja eigtl auch ein freund von strings und deren vergleichen - aber ab und an sollte man die strings nicht in den quellcode schreiben... was zumindest erst mit nem hex-editor und nicht gleich mit notepad zulesen wäre:
const char[] admin_pwd = {'a', 'd', 'm', 'i', 'n', '_', 'p', 'w', 'd'};Helau

-
volkard schrieb:
unskilled schrieb:
sInputPass == "admin"so bitte nicht...
ich bin ja eigtl auch ein freund von strings und deren vergleichen - aber ab und an sollte man die strings nicht in den quellcode schreiben... was zumindest erst mit nem hex-editor und nicht gleich mit notepad zulesen wäre:
const char[] admin_pwd = {'a', 'd', 'm', 'i', 'n', '_', 'p', 'w', 'd'};Helau

gucks doch mit notepad an

bei der anderen lösung würde am ende der *.exe bei den ganzen strings das pwd stehen - hier nicht - hier stehen dann mitten im source iwelche werte - wie gesagt sollte es mit nem hex-editor etc auch kein prob sein, aber mit notepad erst mal nicht mehr
bb
-
Steht bei mir bei den Strings.
...__deregister_frame_info hello admin! hello 0815-user! admin_pwd â@ ”â@ Ìâ@ â@ Lâ@...Und die Version mit einem string macht nichts anders.
const char admin_pwd[] = "admin_pwd"; const std::size_t length = sizeof(admin_pwd)/sizeof(*admin_pwd)-1;bis auf die Nullterminierung.
...__deregister_frame_info admin_pwd hello admin! hello 0815-user! â@ ”â@ Ìâ@ â@...Und mal
if(username_input=="admin_pwd")anschauen:
...__deregister_frame_info admin_pwd hello admin! hello 0815-user! â@ ”â@ Ìâ@...Also bleibts beim
Helau
-
#include <algorithm> #include <string> bool is_admin(const std::string& name, const std::string& pwd) { const char admin_pwd[] = {'a', 'd', 'm', 'i', 'n', '_', 'p', 'w', 'd'}; const std::size_t length = sizeof(admin_pwd)/sizeof(*admin_pwd); if(pwd.size() != length) return false; return std::equal(pwd.begin(), pwd.end(), &admin_pwd[0]); } #include <iostream> int main() { std::string username_input; std::getline(std::cin, username_input); std::string password_input; std::getline(std::cin, password_input); if(is_admin(username_input, password_input)) std::cout << "hello admin!" << std::endl; else std::cout << "hello 0815-user!" << std::endl; }erzeugt mit dem msvc, standard release-einstellungen:
MZ ÿÿ ¸ @ è º ´ Í!¸LÍ!This program cannot be run in DOS mode. $ š¬u—ÞÍÄÞÍÄÞÍÄÀŸŽÄßÍÄÀŸ˜ÄÊÍÄÀŸŸÄÜÍÄÀŸˆÄÛÍÄù`ÄÜÍÄÞÍÄ›ÍÄÀŸ‘ÄßÍÄÀŸŠÄßÍÄRichÞÍÄ PE L K¯lK à í @ ` ÍL @ 4# P @ ° P À ! h! @ ð .text ê `.rdata º @ @.data Œ 0 @ À.rsrc ° @ " @ @.reloc 8 P & @ B V‹ð+ÎWƒùrëI ‹;uƒéƒÂƒÆƒùsì…ÉtM¶¶:+Çu1ƒùv>¶F¶z+Çu ƒùv-¶F¶z+Çuƒùv¶F¶J+ÁÁøƒÈ3Ò…À”Â_ŠÂ^Ã3À3Ò…À”Â_ŠÂ^ÃÌÌÌÌÌÌÌÌÌÌÌÌ̃ì0¡ 0@ 3ĉD$(ƒ~ °dWÆD$ aˆD$!ÆD$"mÆD$#iÆD$$nÆD$%_ÆD$&pÆD$'wˆD$(t2À_‹L$(3Ìè\ ƒÄ0ÃD$P‹Îÿ< @ ‹‹xT$‰L$R‹Îÿ@ @ ‹‹@‰L$ÆD$ ‹T$‹L$RQT$(‹ÏèÖþÿÿ‹L$4ƒÄ_3Ìè ƒÄ0ÃÌÌÌU‹ìƒäøjÿhÂ@ d¡ Pƒì@¡ 0@ 3ĉD$8V¡ 0@ 3ÄPD$Hd£ L$$ÿH @ ÇD$P ‹ x @ ‹5p @ D$$PQÿÖƒÄL$ÿH @ T$ÆD$P¡x @ RPÿÖƒÄt$èÊþÿÿ„Àt‹ L @ ‹d @ QQhD!@ Rë¡L @ PQ‹ d @ hT!@ Qèˆ ƒÄ‹ÈÿP @ L$ÆD$P ÿD @ L$$ÇD$PÿÿÿÿÿD @ 3À‹L$Hd‰ Y^‹L$83Ìèþ ‹å]ÃÌÌÌÌÌÌÌÌÌÌÌÌÌÌjÿhX@ d¡ PW¡ 0@ 3ÄPD$d£ ‹|$‰7‹‹H‹L1(…Étÿ` @ ÇD$ ‹‹Bƃx u‹@,…Àt‹ÈÿT @ ‹‹Qƒ|2 ”ÀˆG‹Ç‹L$d‰ Y_ƒÄ ÌÌÌÌÌÌÌÌÌÌÌÌÌjÿhX@ d¡ PV¡ 0@ 3ÄPD$d£ ‹t$ÇD$ ÿt @ „Àu‹ÿh @ ÇD$ÿÿÿÿ‹‹‹Q‹D(…Àt‹Èÿ\ @ ‹L$d‰ Y^ƒÄ ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹ ‹‹Q‹D(…Àt‹Èÿ%\ @ ÃÌÌÌÌÌÌÌÌU‹ìjÿh’@ d¡ PƒìSVW¡ 0@ 3ÅPEôd£ ‰eð‹u‹E3Û‰]ìP¤$ Š@„Éuù+‹ø‹‹H‹D1;Ã~;Ç~+Ç‹ØUàRègþÿÿÇEü €}ä u ÇEì ëyÆEü‹‹H‹D1%À ƒø@t4…Û~*‹‹BŠL00Æ‹@(ˆMè‹UèR‹ÈÿX @ ƒøÿ…– ƒMìƒ}ì u‹‹H‹U‹L1(WRÿl @ ;Çt~ÇEì ‹‹@Æ3ɉH‰Mü‹Mì‹j Q‹JÎÿ8 @ ÇEü ÿt @ „Àu ‹Màÿh @ ÇEüÿÿÿÿ‹Eà‹‹Q‹L(…Étÿ\ @ ‹Æ‹Môd‰ Y_^[‹å]ÃKé:ÿÿÿd$ …Û~…‹‹HŠT101‹@(ˆUè‹MèQ‹ÈÿX @ ƒøÿu ƒMìéYÿÿÿKëÍ‹E‹‹JjjÈÿ8 @ ÇEü ¸4@ Ëué<ÿÿÿ; 0@ uóÃé¬ h6@ è¤ ¡h3@ Ç$40@ ÿ5d3@ £40@ h$0@ h(0@ h 0@ ÿÜ @ ƒÄ£00@ …À}jèº YÃjh"@ è* 3Û‰]üd¡ ‹p‰]ä¿|3@ SVWÿ @ ;Ãt;Æu3öF‰uäëhè ÿ @ ëÚ3öF¡x3@ ;Æu jè] Yë;¡x3@ …Àu,‰5x3@ h!@ hü @ è² YY…ÀtÇEüþÿÿÿ¸ÿ éÝ ‰5<0@ ¡x3@ ;Æuhø @ hð @ èw YYÇx3@ 9]äuSWÿ0 @ 9ˆ3@ thˆ3@ èŽ Y…Àt SjSÿˆ3@ ¡$0@ ‹ Ì @ ‰ÿ5$0@ ÿ5(0@ ÿ5 0@ è›úÿÿƒÄ£80@ 9,0@ u7Pÿä @ ‹Eì‹‹ ‰MàPQè YYËeè‹Eà£80@ 3Û9,0@ uPÿÔ @ 9<0@ uÿØ @ ÇEüþÿÿÿ¡80@ è øMZ f9 @ t3ÀëM¡< @ € @ 8PE ué·Hù tù uÕƒ¸„ vÌ3É9ˆø ëƒxtv¼3É9ˆè •Á‹Áj£,0@ ÿ„ @ jÿÿ€ @ YY£€3@ £„3@ ÿ° @ ‹ p3@ ‰ÿ´ @ ‹ l3@ ‰¡¸ @ ‹ £t3@ èW è· ƒ=0@ uhu@ ÿ¼ @ Yèr ƒ=0@ ÿu jÿÿÀ @ Y3ÀÃè† éŸýÿÿ‹ÿU‹ìì( £H1@ ‰ D1@ ‰@1@ ‰<1@ ‰581@ ‰=41@ fŒ`1@ fŒ T1@ fŒ01@ fŒ,1@ fŒ%(1@ fŒ-$1@ œX1@ ‹E £L1@ ‹E£P1@ E£\1@ ‹…àüÿÿǘ0@ ¡P1@ £L0@ Ç@0@ ÀÇD0@ ¡ 0@ ‰…Øüÿÿ¡0@ ‰…Üüÿÿÿ @ £0@ jèJ Yj ÿ @ h,!@ ÿ @ ƒ=0@ ujè& Yh Àÿ @ Pÿ @ ÉËÿU‹ì‹E‹ 8csmàu*ƒxu$‹@= “t=!“t="“t= @™uèÛ 3À] hý@ ÿ @ 3ÀÃÌÿ%à @ jh0"@ èl ÿ5„3@ ‹5 @ ÿÖY‰Eäƒøÿuÿuÿœ @ Yëgjèœ Yƒeü ÿ5„3@ ÿÖ‰Eäÿ5€3@ ÿÖYY‰EàEàPEäPÿu‹5€ @ ÿÖYPè_ ‰EÜÿuäÿÖ£„3@ ÿuàÿփģ€3@ ÇEüþÿÿÿè ‹EÜè" Ãjè# YËÿU‹ìÿuèNÿÿÿ÷ØÀ÷ØYH]ËÿV¸"@ ¾"@ W‹ø;Æs‹…ÀtÿЃÇ;þrñ_^ËÿV¸"@ ¾"@ W‹ø;Æs‹…ÀtÿЃÇ;þrñ_^Ãÿ%Ð @ ÌÌÌÌÌÌÌÌÌÌÌÌÌÌ‹ÿU‹ì‹M¸MZ f9t3À]ËA<Á8PE uï3Ò¹ f9H”‹Â]ÃÌÌÌÌÌÌÌÌÌÌÌ‹ÿU‹ì‹E‹H<È·ASV·q3ÒWD…öv‹}‹H;ùr ‹XÙ;ûr BƒÀ(;Örè3À_^[]ÃÌÌÌÌÌÌÌÌÌÌÌÌ‹ÿU‹ìjþhP"@ h%@ d¡ PƒìSVW¡ 0@ 1Eø3ÅPEðd£ ‰eèÇEü h @ è*ÿÿÿƒÄ…ÀtU‹E- @ Ph @ èPÿÿÿƒÄ…Àt;‹@$Áè÷ЃàÇEüþÿÿÿ‹Mðd‰ Y_^[‹å]ËEì‹‹3Ò= À”‹ÂËeèÇEüþÿÿÿ3À‹Mðd‰ Y_^[‹å]ÃÌÿ%È @ ÿ%Ä @ ÌÌh%@ dÿ5 ‹D$‰l$l$+àSVW¡ 0@ 1Eü3ÅP‰eèÿuø‹EüÇEüþÿÿÿ‰EøEðd£ ËMðd‰ Y__^[‹å]QËÿU‹ìÿuÿuÿuÿuh<@ h 0@ èç ƒÄ]ËÿVh h 3öVèÙ ƒÄ…Àt VVVVVè ƒÄ^Ã3ÀËÿU‹ìƒì¡ 0@ ƒeø ƒeü SW¿Næ@»» ÿÿ;Çt …Ãt ÷У0@ ë`VEøPÿ, @ ‹uü3uøÿ( @ 3ðÿ$ @ 3ðÿ @ 3ðEðPÿ @ ‹Eô3Eð3ð;÷u¾Oæ@»ë…óu‹ÆÁàð‰5 0@ ÷Ö‰50@ ^_[ÉÃÿ%ˆ @ ÿ%Œ @ ÿ% @ ÿ%” @ ÿ%˜ @ ÿ%¤ @ ÿ%¨ @ ÿ%¬ @ ÿ%è @ ÌÌÌÌÌÌÌÌÌÌÌÌ‹Eéöÿÿ‹T$Bü‹Jø3ÈèÓ÷ÿÿ¸t"@ éËÿÿÿÌÌÌÌÌÌÌÌÌÌÌÌÌEàPèWõÿÿÃEàéÎõÿÿ‹T$B‹JÜ3Èè™÷ÿÿ¸Ü"@ é‘ÿÿÿÌÌÌMÐÿ%D @ M´ÿ%D @ ‹T$B¼‹J¸3Èèi÷ÿÿƒÀ‹Jø3Èè\÷ÿÿ¸#@ éTÿÿÿ Š+ ’+ °+ Ä+ Ø+ ô+ , &, @, P, f, |, t+ ’' Ò' d( ø( B) Œ) B' ' À& ~& >& t$ & ¼% % ê$ °$ ¢* ´* Æ* Ü* ü* + + + &+ 8+ R+ d+ ”* „* t* `* J* <* 0* $* * * ü) ì) Þ) * ¤, K@ @ ?@ K¯lK 8 °! ° @0@ ˜0@ bad allocation hello admin! hello 0815-user! H 0@ ð!@ RSDSi‚#£G–«"[º5 f:\Test\test1\Release\test1.pdb % X ’  þÿÿÿ Ðÿÿÿ þÿÿÿ¼@ Ð@ þÿÿÿ Ìÿÿÿ þÿÿÿ ð@ þÿÿÿ Øÿÿÿ þÿÿÿ‹@ Ÿ@ ÿÿÿÿP@ "“ l"@ ÿÿÿÿ€@ ÿÿÿÿŠ@ @ @ ¸"@ "“ ˜"@ È"@ ÿÿÿÿ°@ ¹@ "“ #@ ¼# Ò) 8 $ ð* € „# –, Š+ ’+ °+ Ä+ Ø+ ô+ , &, @, P, f, |, t+ ’' Ò' d( ø( B) Œ) B' ' À& ~& >& t$ & ¼% % ê$ °$ ¢* ´* Æ* Ü* ü* + + + &+ 8+ R+ d+ ”* „* t* `* J* <* 0* $* * * ü) ì) Þ) * ¤, ‚?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A ;?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A ä?uncaught_exception@std@@YA_NXZ  ??$getline@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z v?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z |?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ W?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ Ð?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ s?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z !?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@P6AAAV01@AAV01@@Z@Z D?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z Ÿ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ /?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ _??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ {??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ ¤?endl@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@1@AAV21@@Z MSVCP90.dll _amsg_exit Ÿ __getmainargs ,_cexit |_exit f _XcptFilter Ìexit __initenv _initterm _initterm_e <_configthreadlocale ã __setusermatherr _adjust_fdiv Ë __p__commode Ï __p__fmode j_encode_pointer à __set_app_type K_crt_debugger_hook C ?terminate@@YAXXZ MSVCR90.dll æ_unlock – __dllonexit v_lock _onexit `_decode_pointer s_except_handler4_common _invoke_watson ?_controlfp_s ½InterlockedExchange !Sleep ºInterlockedCompareExchange -TerminateProcess ©GetCurrentProcess >UnhandledExceptionFilter SetUnhandledExceptionFilter ÑIsDebuggerPresent TQueryPerformanceCounter fGetTickCount GetCurrentThreadId ªGetCurrentProcessId OGetSystemTimeAsFileTime KERNEL32.dll s __CxxFrameHandler3 Næ@»±¿Dÿÿÿÿÿÿÿÿþÿÿÿ 4!@ € 0 € H X@ V ä <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel> </requestedPrivileges> </security> </trustInfo> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> </dependentAssembly> </dependency> </assembly>PAPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDING | ”0í01I1X1d1{1‰11¤1²1Ì1Ò1Ù1á1é1î1ÿ12 2S2`2†2ª2ã2ð233:3s3†3˜334Z4‡4”4¡4¾4þ4#5/5>5L5V5]5c5h5m5r5w5}5…5™5´5½5Ø5â5õ5ÿ56 6+60696>6K6\6b6i6}6‚6ˆ66–6œ6©6¯6¸6×6ß6è6î6ö6777%7n7t7|7ƒ7ˆ7Ž7”7œ7¢7©7°7À7È7Î7Ú7å78 8888!8(8/868=8D8K8R8Z8b8j8v88„8Š8”88¨8´8¹8É8Î8Ô8Ú8ð8÷8@9F9P9W9b9h9|9‘9œ9´9Ê9×9::::?:^:; ;;=;Q;W;À;Æ;Í;ê;7<<<<¤<±<½<Å<Í<Ù<ý<===="=(=.=4=:=@=j=¤=µ=¾=á= 8 ô0 11,101¤1¨1$2(2H2d2h2p2|2œ2´2Ä2Ø2ä2ì2333 0 0also bleibts beim: zumindest im notepad nicht zu erkennen
bb
-
Es bleibt bei einem sehr schwachen Rat. So viel Code, wie Du dazuerzeugt hast, da kannste auch schnell drüberlaufen und zu jedem char 11 addieren oder die letzten drei Bits toggeln. Dann klappts auch mit allen Compilern. Beachte, daß ich auch mit notepad geschaut habe.
-
Es bleibt bei einem sehr schwachen Rat.
Jopp - das hatte ich aber ganz am Anfang auch schon geschrieben...
bb
-
unskilled schrieb:
also bleibts beim: zumindest im notepad nicht zu erkennen
Ende Zeile 25?!?
-
Michael E. schrieb:
unskilled schrieb:
also bleibts beim: zumindest im notepad nicht zu erkennen
Ende Zeile 25?!?
Bin ich blind? Oo
Ich seh nix
Strg+F "admin_pwd" liefert auch nur 8 Ergebnisse - nämlich die im Quelltext(je 2 mal)bb
-
Ups, hab nur "hello admin! hello 0815-user!" gefunden. Und das Ende der Zeile ists auch noch lange nicth
