Forum: Mikrocontroller und Digitale Elektronik Passwortabfrage in Bascom


von Hermann (Gast)


Lesenswert?

Hallo liebe Leute...

Ich bin dabei eine Passwortabfrage zu programmieren...habe da so ein 
kleines Projekt in aussicht...

naja... nachdem ich mir vor kurtzem einen ATMega32 zugelegt habe... 
konnte ich mit der Programmation beginnen... dann habe ich mir noch ein 
3 x 4 Zahlenfeld gekauft, zudem ein MK2 Board mit einem Isp Stecker... 
über diese schnittstelle kann ich meinen µC praktisch über Usb 
programmieren...

Jetzt habe ich nur ein problem... Ich komme nicht wirklich weiter...wie 
gesagt möchte ich eine Passwortabfrage machen... bei der ich das 
Password aber auch ändern möchte... (so wie bei einem Handy zum 
Beispiel)

nur das Passwort zu vergleichen scheint mir nicht so schwehr zu sein... 
hatte da vor mit einer 4fachen IF abfrage ran zu gehn...also wenn eine 
Taste Gedrückt wird wird verglichen... und wenn es nicht stimmt sollte 
das Programm dennoch 4 tasten drücke abwarten und am ende mitteilen ob 
das Password richtig ist, falls nicht neuer versuch... sollte der Pin 3 
mal falsch eingegeben werden wird die Eingabe während einer gewissen 
Zeit gesperrt...

Zudem wollte ich dann ein Menu machen, indem ich mein Password ändern 
kann... falls das mir aber zu schwierig wird bevorzuge ich ein festes 
Password...

Hoffe mir kann da jemand helfen ...

Gruss Herr Ortmanns

von Vlad T. (vlad_tepesch)


Lesenswert?

wozu die kurze länge von 4?

Bau dir eine Comparefunktion, die zwei array nimmt und die vergleicht.
In das Array kannst du ein endmarker schreiben.

Oh, wunder, sowas gibts sogar schon: strcmp
Basiert zwar auf strings und der Endmarker ist '\0', aber das ist ja 
egal.
Musst halt nur aufpassen, dass dein Passwort und die Eingabe kein 
\0-CHar enthält, was nicht passieren kann, wenn du nur Alpha-numerische 
Ascizeichen erlaubst (bzw, wenns ohnehin nur zahlen von 0-9 sind, '0' 
draufaddierst).

edit:
oh, sorry, du hast bascom geschrieben.
Da musst du wohl sekbst eine alternative Vergleichsfunktion schreiben, 
oder aus der Bibliothek raussuchen

von Bernadette (Gast)


Lesenswert?

Man kann in BASCOM strings bzw. Zahlen problemlos vergleichen.

Den Agorithmus muss man gemäß seinen eigenen Wünschen schon selbst 
schreiben.

B.

von Weingut P. (weinbauer)


Lesenswert?

Bascom kann von Haus aus schon Strings vergleichen,
soweit kein Problem.
Das Einfachste aber wird sein Du legst n Array an,
das bei jedem Tastendruck einfach einen Schritt weiter
geshiftet wirdund wenn 12 Tastendrücke noch keine
Übereinstimmung zur Pin ergibt sperrst Du das Ding einfach indem du n 
Flag im EEPROM setzt.
Dort ins EEPROM gehört auch das Array mit der Pin hin, dann ist das 
nicht flüchtig und kann auch jederzeit überschrieben werden ohne neu zu 
flashen.
insgesamt eine lösbare Aufgabe.
Auch den Zähler für die Tasteneingaben kann man im eeprom anlegen, damit 
auch sicher nicht geschummelt werden kann.

von Hermann (Gast)



Lesenswert?

Hallo ich habe bisher noch nie mit Array programmiert... weder mit 
direkten schreiben und lesen des Eeprom's... doch denke ich, das es lang 
dauert sich etwas solches anzulernen... oder irre ich mich da?

die ideen klingen jedoch sehr intressannt...nur glaube ich das ich 
diesen Aufgaben nicht gewachsen bin...

@Vlad Tepesch :

Ich möchte bei 4 Zeichen bleiben...da man den Pin möglichst leicht 
behalten sollte und schnell eintippen kann...

meine Idee ist folgende...: Ich möchte ein System Bauen, das eine Person 
in einen Raum lässt nachdem es ein Password eingegeben hat und sein 
Fingerabdruck gescannt wurde...vllt lass ich das mit dem Fingerabdruck 
fallen und mach es mit einer Chipkarte(bzw Transponderkarte)...

bisher ist noch alles nur eine Idee und ich habe auch erst wenig 
umgesetzt... jedoch habe ich mir ein Flussdiagramm gezeichnet, das 
zeigen soll was mein system später machen soll...(siehe Anhang)

> bei den einstellungen sollte dann noch Pin ändern hinzukommen...

> Mit schlüssel ist der Fingerabdruck oder die Transponder karte gemeint...

denke das ich da noch was arbeit habe...

von Weingut P. (weinbauer)


Lesenswert?

öööhm ... hast Du schonmal in Bascom programmiert?
Deine Diagramme schan auf den ersten Blick ja schonmal
ganz gut aus, Planung ist wichtig.

Steht die Hardware schon?

Ein Programmgrundgerüst schonmal erstellt?

von Hermann (Gast)


Lesenswert?

ja hebe bereits mehrere "kleinere" programme geschrieben...nichts 
weltbewegendes... hehe

ja die Hardweare steht... ich habe auch einen Leser um Transponder daten 
zu empfangen und seriel weiter zu schicken... zudiesem leser habe ich 
bereits ein funktionstüchtiges Programm geschrieben , das ganz einfach 
anzeigt welcher "schlüssel gerade gelesen wird... das mit dem 
fingerabdruck währe eine mögliche erweiterung... zunächst möchte ich 
mich aber schonmal auf ein Passwort und den Transponder schlüssel 
fixieren...

Ein Programmgrundgerüst habe ich jedoch noch nie gemacht...

Weis gar nicht genau was ich darunter verstehen soll...

Ich errinnere mich wie ich früher mal sowas ähnliches(denke ich mal) in 
SPS gemacht habe( Siemens)...

Wie sähe denn ein solches Programmgrundgerüst aus und was muss beachte 
weden?...

gruss Hermann

von Hermann (Gast)


Angehängte Dateien:

Lesenswert?

hallo...ich habe jetzt eine kleine Passwortabfrage geschrieben di mir 
jedoch noch gar nicht gefällt... ich arbeite wie bereits gesagt mit 
einem 3x4 Tastenfeld... und möchte eine Passwort abfrage programmieren , 
wobei ein Passwort 4 zeichen beinhaltet...

Was ich erreicht hebe:
- ein Passwort eingeben können
- Dieses mit einem im Programmgespeicherten Passwort vergleichen
- und darauf eine Aktion ausfüheren (hier eine Led für eine Sekunde 
ausschalten)

Was ich noch gerne hätte... und erreichen möchte:

- mein Programm strukturierter aufsetzen (ist noch nur zum testen)
- Alles über die Matrix (Zahlenfeld) steuern
- eine Lösch funktion schreiben (sehr grosses problem)
- für mehrere Benutzer gebrauchen können/// d.h. viele verschiedene 
Passwörter miteinander vergleichen

Hoffe mir kann jemand einen Tipp geben besondes zum löschen des 
Eintrages... (jeweils eine stelle)

Ich habe schon an ein Unterprogramm zur Tastenabfrage gedacht...

Gruss Hermann

von weinbauer (Gast)


Lesenswert?

ui ui ui ... erster Tip, verbanne GOTO aus Deiner
zu verwendenden Befehlsliste.
Ich kenne nur eine einzige sinnvolle Verwendung für diesen
Befehl wo ich ihn auch benutze, zum Sprung in den Bootloader
vom Hauptprogramm aus.
Ansonsten verwende Schleifen, Verzweigungen und Subprozeduren,
das macht den COde deutlich besser lesbar und vermeidet
Spaghetticode.

Wenn ich den Code richtig lese verwendest Du für die Eingabe
die UART, keine Tastatur. Das macht die Geschichte deutlich
einfacher.

... aber Deinen Code passend umzustricken käme aufs Neuprogrammieren
heraus.

Schau Dir mal "Call und Gosub" an, dann noch URXC Interrupt und 
"Overlay" Variablen ... damit dürfte sich Dein Problem schon erschalgen 
lassen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.