mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Passwortabfrage in Bascom


Autor: Hermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernadette (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man kann in BASCOM strings bzw. Zahlen problemlos vergleichen.

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

B.

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hermann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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...

Autor: Weingut Pfalz (weinbauer)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Hermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hermann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: weinbauer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.