Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 27.09.2007, 18:46 Titel: Erweitertes Login |
|
|
Endich mal wieder was neues
Ein schönes nettes Loginprogramm..
Fehlt nur noch die Verschlüsselung
_________________ Bis irgendwann... 
Zuletzt bearbeitet von AndT am 03.05.2008, 22:40, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 27.09.2007, 19:42 Titel: |
|
|
Nix zum Programm, sondern eher allgemein.
- Keine Einrückungen
(- Warum GoTo?)
- Das "Programm" sollte lieber nicht anzeigen, was falsch war/nicht angegeben wurde, sondern wenn was nicht stimmt eine Art "Access denied! Try again." bringen. In Verbindung mit einer maximalen Anzahl an Versuchen + einer für den Gebrauch nicht störenden, für Brute-Force- oder Dictionary-Attacken aber großen Verzögerung, bis ein erneuter Versuch möglich ist. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 27.09.2007, 20:27 Titel: |
|
|
Alles gepatcht (GOTO'S AUCH )
Code: | dim shared as integer loginrtr
sub ende
Print "Eine Taste zum beenden druecken.."
sleep
end
end sub
sub blocker
randomize timer
dim as integer w1 = timer
do
sleep 1
loop until INT(TIMER) = w1 + INT(RND * 3)+2 ' Rein Zufällig :p
Print "Weiter mit ESC.."
do
sleep 1
loop until inkey = chr(27)
end sub
function checkusername(uname as string,passwx as string) as ubyte
dim as integer nlgh = len(uname)
if nlgh = 0 then beep : function = 1:exit function
open uname for input as #240
if lof(1)= 0 then function = 2
dim as string passw
input #240,passw
close #240
if len(passw)=0 then function = 2:exit function
if passwx=passw then function = 254 : exit function else function = 3
end function
function usercheck(uname as string,passwx2 as string) as string
dim as ubyte XID
XID = checkusername(uname,passwx2)
select case xid
case 254
Function = "login erfolgreich abgeschlossen"
case else
Function = "login fail!"
end select
end function
function userregister(uname as string,passwx as string) as string
open uname for input as #1
if passwx = "" then Function = "password not setted!":close #1 :sleep:exit function
close #1
open uname for output as #1
print #1,passwx
if lof (1) > 0 then function = "all ok" else function = "error"
close #1
end function
Function EnterPassw as string
dim as string passwort
dim as string Eingabe
dim as integer passwortlaenge
Print "Passwort eingeben (wird nicht angezeigt)..?"
Do
Eingabe= input(1)
If Eingabe=Chr(13) then Exit Do
If Eingabe=Chr(8) Then Passwort=MID(Passwort,1,Len(Passwort)-1) else Passwort + = Eingabe :
Loop
Function = Passwort
end function
sub neuerbenutzer
Print "Neuer Benutzer.."
dim as string Uname,Upassw
Input "Benutzername..";Uname
Upassw=Enterpassw
print userregister (Uname,Upassw)
print "ferdisch.."
close #1
sleep
end sub
sub login
print "login"
loginrtr=0
back_login:
Print "Login.."
dim as string Uname,Passwort
Input "Benutzername.. (.exit zum beenden eingeben)";Uname
if LCASE(Uname)=".exit" then Print "Login verlassen, Taste zum fortsetzen..":exit sub
dim as integer nochmal
for nochmal = 1 to 3
Passwort = Enterpassw
IF usercheck(Uname,Passwort) = "login erfolgreich abgeschlossen" then PRINT "PASSWORT KORRECKT :) ZUGANG ERHALTERN" : exit for : else print "Zugang verweigert!"
next
print nochmal
IF nochmal = 4 then Print "Zuviele fehlgeschlagende Versuche!":blocker:loginrtr=1:exit sub
sleep
end sub
' //EDIT:
' Ein kleines Beispiel:
dim as string Eingabe
'vonvorne:
Do
cls
Print "1 = Neuen Benutzer registieren"
Print "2 = Login"
Print "3 = Ausgang"
'backinp:
Do
if loginrtr = 0 then Eingabe = Input(1) else if loginrtr =1 then Eingabe="2":loginrtr=2:Exit Do
select case val(Eingabe)
case 1
neuerbenutzer
case 2
login
case 3
ende
case else
Exit Do
end select
Loop
Loop |
_________________ Bis irgendwann... 
Zuletzt bearbeitet von AndT am 03.05.2008, 23:11, insgesamt 5-mal bearbeitet |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 27.09.2007, 20:29 Titel: |
|
|
ich seh da immernoch 'goto's  _________________
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 27.09.2007, 20:51 Titel: |
|
|
Code: | 'vonvorne:
Do
cls
Print "1 = Neuen Benutzer registieren"
Print "2 = Login"
Print "3 = Ausgang"
'backinp:
Do
if loginrtr = 0 then Eingabe = Input(1) else if loginrtr =1 then Eingabe="2":loginrtr=2:Exit Do
select case val(Eingabe)
case 1
neuerbenutzer
case 2
login
case 3
ende
case else
Exit Do
end select
Loop
Loop | ..ist aber ungetestet..
..und den Spaghetti-Wurm habe ich mal geflissentlich übersehen
Nur um mal zu zeigen, wie es 'schön' aussehen könnte
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
|