OnlineBanking TAN-Verfahren!

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo
Ich bin ein absoluter noob in sachen java und muss aber was für die schule programmieren und zwar sollen meine gruppe und ich eine onlineBank mit allem drum und dran programmieren. Ich habe den Teil mit dem TAN-Verfahren. Das bedeutet man bekommt eine Liste von TANs, jede hat auch einen index sagen wir von 0-100. dann wenn man die komplette onlinebank startet, soll man sich mit kundennummer und Pin und TAN anmelden. bei der TAN soll das programm einen index generieren und dann muss die entsprechende TAN eingeben.
Das ganze Programm haben wir einfach gehalten, d.h. mit JOptionPane und so, halt ziemlich einfach.

Hoffe ihr könnt mir helfen ich brauche das heute noch. Wär echt cool von euch.
 
G

Guest

Gast
das problem is ich hab keine ahnung davon. wir haben erst damit angefangen und das is eine art referat. unser lehrer meinte wir können uns hilfe holen, er will hauptsächlich, dass das programm funktioniert und das wir die den quellcode erklären. wenn ich ein bisschen ahnung davon hätte wäre das ein bisschen einfacher.
das einzige was ich habe ist die klaase erstellt. Laughing
 

FArt

Top Contributor
Die Funktionalität kannst du bei meiner Bank abschauen. Hier meine Daten für das Onlinebanking:

Name: Frank Artmann
KtoNr: 49876325
BLZ: 70010080
Postgiroamt München
Passwort: huIZh$4

Foglende TANs sind noch frei:
007: 320480
086: 218923
095: 893457

Bitte nicht alle verbrauchen.
 

tfa

Top Contributor
Anonymous hat gesagt.:
unser lehrer meinte wir können uns hilfe holen
Und genau das solltet ihr tun, und zwar beim Lehrer. Der ist dafür zuständig, das grundsätzlich zu erklären.
Wenn es dann konkrete Probleme gibt, ist das Forum der richtige Ort, um Fragen zu stellen.
 
G

Guest

Gast
ja einen ansatz haben wir schon, ich brauche jetz nur noch einen ansatz wie ich das mit dem index mache und so weiter dann können wir das einbaue. ich hab jetz leider die anderen nicht zur hand.
 
S

SlaterB

Gast
zunächst musst du pro Kunde die Tans zum Index zufällig erzeugen,
Kunde X, Tan 001 = 586493 usw

dann müssen diese langfristig gespeichert werden, eine einfache Datei geht vorerst,
wenn nur vorgegebene Kunden vorhanden sind, dann könnte man das testweise auch direkt im Quellcode ablegen,

dann den Kunden nach einen zufälligen Index fragen und die eingegebene Zahl mit der hinterlegten vergleichen,

irgendwie habe ich aber das Gefühl, dass so eine Beschreibung wenig bringt,
'und jetzt das ganze noch als Programm' wär dir wohl lieber, was? ;)
 
G

Guest

Gast
leute das klingt alles ganz gut aber ich hab keine ahnung wie ich das in den code umsetze. sry ich sag ja ich bin voll der noob.
 
S

SlaterB

Gast
was zu erwarten war, aber der vorherigen Aussage

> ich brauche jetz nur noch einen ansatz wie ich das mit dem index mache und so weiter dann können wir das einbaue.

doch völlig widerspricht,

schreibe einfach von Anfang an dass du von Java nichts weißt und dir hier jemand ein fertiges Programm programmieren soll,
ist zwar ziemlich unrealistisch, aber zumindest ehrlich und klar
 

ARadauer

Top Contributor
absoluter noob in sachen java
onlineBank mit allem drum und dran programmieren
ich brauche das heute noch
das einzige was ich habe ist die klaase erstellt.

yeah... das wird lustig, da bin ich mal gespannt....

also gast:
1. hier wird dir sicher keiner dein projekt programmieren
2. es gibt sicher kein how to bank programmieren tutorial
3. du musst konkrete fragen stellen... dann helfen wir gerne ;-)

mit einer klasse werdet ihr nicht auskommen ;-)
 
G

Guest

Gast
ja was soll ich machen wenn ich null ahnung habe wie ich das angehen soll. wollt ja nur mal fragen.
 
G

Guest

Gast
ne morgen muss es fertig sein deswegen bin ich ja so in eile. das is das problem.
 

ARadauer

Top Contributor
ja was soll ich machen wenn ich null ahnung habe wie ich das angehen soll.

willst du die Tans in einer Datenbank halten oder wie genau soll das werden?

das is alles nur eine kleine demo, mit 3-4 klassen oder?
onlineBank mit allem drum und dran programmieren
da programmieren, 20 leute 2 jahre dran...

versuch das ganze nochmal genau zu erklären, hast du eine schriftliche aufgabenstellung? welche tchniken habt ihr bereits gelernt?
 

Frank_H

Mitglied
Anonymous hat gesagt.:
ne morgen muss es fertig sein deswegen bin ich ja so in eile. das is das problem.

ähm, dass du vielleicht ein bisschden lang damit gewartet hast kann nicht sein?

ohne konkrete fragen kann dir hier keiner sagen was du machen oder lassen sollst, aber das beste wäre es, wenn du dir mal ein paar minuten zeit nimmst und mal konkrete fragen formulierst... du redest nur um den heißen brei rum und meinst "morgen muss das..." "ich habe keine ahnung..."

wir können bei konkreten java-problemen helfen, nicht aber bei sowas ;-)
 

ARadauer

Top Contributor
ok, also wahrscheinlich username und tans hardcoded...
klasse bank
hält user in einer Arrayliste
klasse user
hält tans in einer arrayliste
klasse tan
is halt string

hauptprogram
fragt benutzer nach username und passwort
itteriert über user der bank drüber und schaut obs einen user mit dem namen und passwort gibt
generiert eine zufallszahl zwischen 0 und länge der tan arrayliste
gibt benutzer diese zahl zurück
benutzer gibt tan ein
ist tan gleich der tan an der position der zahl
passt
sonst nicht.....
 
G

Guest

Gast
also das funktioniert so:
Das Programm wird gestartet, es fragt nach username/kundennummer/, PIN und TAN. wenn kundennummer, Pin oder die tan des entsprechenden index nicht stimmt lässt es nicht durch.

Ne die Aufabe haben wir vor ca. einer woche aufbekommen und haben es halt immer hingeschoben und jetz sitzen wir hier und wollen das machen.
 
G

Guest

Gast
also es ist so wie ARadauer gesagt hat. so muss das funktionieren.

sry für doppelpost
 

ARadauer

Top Contributor
also es ist so wie ARadauer gesagt hat. so muss das funktionieren.
tja dann versteh ich das problem nicht
schreibt eine klasse Bank, User, Tan und ein Hauptprogramm dass die sachen initalisiert und dann einfach Aufforderung ausgeben und Userdaten eingeben...
 
G

Guest

Gast
die bank is geschrieben user auch nur noch das mit dem tan. ich weiß nich genau wie ich das umsetzen muss.
ich meine wenn ich das hauptprogramm starte muss er ja nach user, und pin fragen und dann nach dem tan mit einem bestimmten index. also index und tannummer kapier ich nicht. der rest ist bei uns fertig. muss ich das mit arrays machne oder was, wenn ja dann is das eigentlich das problem. also falls ihr es immer noch nicht wisst ich hab probleme die klasse tan und index zu schreiben. den rest hab ich doch mit pin und ähnliches.

sry wenn ich mich immer so umständlich ausdrücke.
 

Final_Striker

Top Contributor
also nochmal:

du hast eine arraylist mit sagen wir mal 20 tan einträgen
bei starten des programms wird eine zufallszahl zwischen 1-20 generiert und den benutzer angezeigt.
dieser muss jetzt die tan mit den angezeigten index eingeben
wenn die eingegebene zahl mit der zahl in der arraylist übereinstimmt kann es weitergehen :wink:
 
G

Guest

Gast
also ich habe jetzt in der klasse TAN ein Array mit dem Typ String erstellt, string wegen der 0 vielleicht vorne, damit die nicht wegfällt wenn ich int nehme.

String[] Liste = new String[20];
Liste[15] = "012345";
Liste[10] = "666666";


Also 20 Objekte sind in dem Array und ich habe den objekten mit dem index 15 und 10 einer 6-stelligen zahl zugeordnet. Wie mach ich das jetzt das er wenn ich das programm starten will er eine von den 2 indexen nimmt und mich nach den 6-stelligen nummern fragt.
mit math.random wie kann man auf die indexe zugreifen damit er eine zufahlszahl von 0-19 erzeugt????
 

Der Müde Joe

Top Contributor
Anonymous hat gesagt.:
mit math.random wie kann man auf die indexe zugreifen damit er eine zufahlszahl von 0-19 erzeugt????

Die API..dein Freund und Helfer
http://java.sun.com/javase/6/docs/api/java/util/Random.html#nextInt(int)

EDIT:
oh mit Math.random....nimm das nicht...ist nicht so gut
nimm java.util.Random
 
G

Guest

Gast
ok bis jez hab ichs so:

public class TAN {

public static void main (String args [])
{

String[] Liste = new String[14];
Liste[0] = "012345";
Liste[1] = "666666";
Liste[2] = "555555";
Liste[3] = "444444";
Liste[4] = "333333";
Liste[5] = "222222";
Liste[6] = "111111";
Liste[7] = "777777";
Liste[8] = "888888";
Liste[9] = "999999";
Liste[10] = "121212";
Liste[11] = "131313";
Liste[12] = "141414";
Liste[13] = "151515";

Random rando = new Random();
rando.nextInt(14);


}
}


Wie binde ich jez erstmal die arrayliste in dem RANDOM ein, damit er mir dann eine meldung macht welchen index er hat und damit ich die 6-stellige zahl eingeben kann.
 

ARadauer

Top Contributor
variablen schreibt man klein,


so kannst du mit JOptionPane was ausgeben

JOptionPane.showMessageDialog(null, "albaalba");

Wie binde ich jez erstmal die arrayliste in dem RANDOM ein,
konkret fragst du wie du auf einen wert in einem array zugreifst... wie alt seit ihr?....

int index = rando.nextInt(14);
int wert = liste[index];
 

ARadauer

Top Contributor
falls das so ist kann ich ja nun meine Lösung posten:

mehr ist sich während eines svn update nicht ausgegangen...
Code:
import java.util.ArrayList;
import java.util.Random;

import javax.swing.JOptionPane;


public class Bank {
   ArrayList<User> users;
   
   public Bank(){
      generateUsers();
   }   
   private void generateUsers() {
      users = new ArrayList<User>();
     
      User u1 = new User();
      u1.setPin(1111);
      u1.addTan("AA");
      u1.addTan("BB");
      u1.addTan("CC");      
      users.add(u1);      
      User u2 = new User();
      u2.setPin(2222);
      u2.addTan("DD");
      u2.addTan("EE");
      u2.addTan("FF");      
      users.add(u2);      
   }
   
   public User getUserByPin(int pin){
      for(User u: users){
         if(u.getPin()==pin)
            return u;
      }
      return null;
   }

   public static void main(String[] args){
      Bank b = new Bank();
      
      User user = null;
      while(user==null){      
         String input =JOptionPane.showInputDialog("Pin eingeben:");
         if(input==null){
            JOptionPane.showMessageDialog(null, "Abbruch");
            System.exit(-1);
         }
         int inputInt=0;
         try {
            inputInt =  Integer.parseInt(input);;
         } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Pin keine Zahl");
            continue;
         }
         
         user = b.getUserByPin(inputInt);
         if(user ==null){
            JOptionPane.showMessageDialog(null, "Pin Falsch");
            continue;
         }       
      }
      boolean loggedIn = false;
      while(!loggedIn){
         String input =JOptionPane.showInputDialog("Tan Nr "+(user.generateTanId()+1)+" eingeben");
         if(input==null){
            JOptionPane.showMessageDialog(null, "Abbruch");
            System.exit(-1);
         }
         if(user.checkTan(input)){
            loggedIn = true;
         }else{
            JOptionPane.showMessageDialog(null, "Tan Falsch");
         }
      }
      JOptionPane.showMessageDialog(null, "Passt eingeloggt");               
   }  
}

class User{
   int pin;
   ArrayList<String> tans = new ArrayList<String>();
   public int currentTan;
   public int getPin() {
      return pin;
   }
   public void setPin(int pin) {
      this.pin = pin;
   }     
   public int generateTanId(){
      Random r = new Random();
      currentTan = r.nextInt(tans.size());
      return currentTan;
   }
   
   public boolean checkTan(String tan){
      return tans.get(currentTan).equals(tan);
   }
   
   public void addTan(String tan){
      tans.add(tan);
   }
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben