Eclipse Bankensystem

YDB

Mitglied
Guten Abend liebe Community,

ich bin Programmieranfänger und hänge zur Zeit an einer Aufgabe. Leider kann ich keinen Tutor zu dieser Zeit erreichen und die Abgabe steht unmittelbar bevor (freiwillige Abgabe zur Erarbeitung von Punkten). Es handelt sich hierbei um eine Aufgabe, bei der es darum geht, ein System für eine Bank zu implementieren. Das größte Problem stellt der md5hash dar, weil das für mich komplett neu ist und ich nicht genau weiss, wie ich diesen einsetzen soll. Ich konnte bis jetzt alle Aufgaben soweit meistern, jedoch hackt es momentan ziemlich hart.... Hier soweit mein Quellecode(entschuldigt die dummen Fehler):-->Aufgabenstellung im Anhang als PNG

Java:
package asb_letzte;

import java.util.ArrayList;

public class Bank
{
    private  String name;
    private String vorsitzender;
    private int anzahlMitarbeiter;
    private ArrayList<Person> personen= new ArrayList<Person>();
  
    public Bank(String name, String vorsitzender, int anzahlMitarbeiter,Person personen)
    {
    this.name=name;
    this.vorsitzender=vorsitzender;
    this.anzahlMitarbeiter=anzahlMitarbeiter;
    this.personen=new ArrayList<Person>();
  
    }
  
public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public String getVorsitzender()
    {
        return vorsitzender;
    }

    public void setVorsitzender(String vorsitzender)
    {
        this.vorsitzender = vorsitzender;
    }

    public int getAnzahlMitarbeiter()
    {
        return anzahlMitarbeiter;
    }

    public void setAnzahlMitarbeiter(int anzahlMitarbeiter)
    {
        this.anzahlMitarbeiter = anzahlMitarbeiter;
    }

  
public void addPerson(Person kunde)
{
   this.personen.add(kunde);
}

public Person getPerson(String vorname, String nachname)
{
    return personen.get(vorname,nachname):
  
}

}
Java:
package asb_letzte;

import java.util.ArrayList;

public class Person
{
    private String vorname;
    private String nachname;
    private int alter;
    private double gehalt;
    private ArrayList<Konto> konten= new ArrayList<Konto>();
  
 
    public Person(String vorname, String nachname, int alter, double gehalt, Konto konten)
    {
        this.vorname= vorname;
        this.nachname=nachname;
        this.alter=alter;
        this.gehalt=gehalt;
        this.konten=new ArrayList<Konto>();
  
    }

    public void print()
    {
        Konto k1= new Konto(alter, gehalt, nachname, alter);
        k1.setKontonummer(55059243);
        k1.setKontostand(500);
      
  
        System.out.print("Kunde: " + nachname + " "+ vorname + " "+ alter + " " +gehalt);
        System.out.print("\nKontonummer: " + k1.getKontonummer() + " "+ "Kontostand: " + k1.getKontostand() +" " +"Dispolimit: " + k1.getDispolimit());
    }
  
    public void addKonto(int kontonummer, String pin)
    {
      
        Konto k1 = new Konto(kontonummer, gehalt, pin, kontonummer);
      
        if(gehalt<2500)
        {
            k1.setDispolimit(3000);
        }
      
        else
        {
            k1.setDispolimit(500);
        }
    }
  
    public Konto kontoZugriff(int Kontonummer)
    {
        if()
        return null
    }
  
  
    public String getVorname()
    {
        return vorname;
    }

    public void setVorname(String vorname)
    {
        this.vorname = vorname;
    }

    public String getNachname()
    {
        return nachname;
    }

    public void setNachname(String nachname)
    {
        this.nachname = nachname;
    }

    public int getAlter()
    {
        return alter;
    }

    public void setAlter(int alter)
    {
        this.alter = alter;
    }

    public double getGehalt()
    {
        return gehalt;
    }

    public void setGehalt(double gehalt)
    {
        this.gehalt = gehalt;
    }

 

}
Java:
package asb_letzte;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Konto
{
    private  int kontonummer;
    private double kontostand;
    private String pin;
    private int dispolimit;
  
    public Konto(int kontonummer, double kontostand, String pin, int dispolimit)
    {
        this.kontonummer=kontonummer;
        this.kontostand=kontostand;
        this.pin=pin;
        this.dispolimit=dispolimit;
      
    }
 
  
 
  
    public void print()
    {
        System.out.print("Kontonummer: "+ kontonummer+ "\nKontostand: "+kontostand + "\nDispolimit: "+ dispolimit);
      
    }
  
    public boolean einzahlen(int betrag)
    {
      
        kontostand+= 0;
                if(kontostand==kontostand)
                {
                    return false;
                }
                return true;
      
    }
  
    public boolean auszahlen(int betrag, String pin)
    {
        int auszahlung= 1000;
        if(pin==null)
        {
           if(dispolimit>auszahlung)
           {
               kontostand-=auszahlung;
             
           }
        }
      
        else
        {
            return false;
        }
        return true;
      
      
    }
  
    public static String getMD5hash(String input)
    {
        String getMD5hash=null;
        if(null==input) return null;
      
        try
        {
            MessageDigest digest= MessageDigest.getInstance("MD5");
            digest.update(input.getBytes(), 0, input.length());
            getMD5hash=new BigInteger(1, digest.digest()).toString(16);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return getMD5hash;
      
    }
  
    public String getPin()
    {
        return pin;
      
    }
   public int getKontonummer()
    {
        return kontonummer;
    }

    public void setKontonummer(int kontonummer)
    {
        this.kontonummer = kontonummer;
    }

    public double getKontostand()
    {
        return kontostand;
    }

    public void setKontostand(double kontostand)
    {
        this.kontostand = kontostand;
    }

    public int getDispolimit()
    {
        return dispolimit;
    }

    public void setDispolimit(int dispolimit)
    {
        this.dispolimit = dispolimit;
    }



}


Ich hoffe, Ihr könnt mir helfen, da ich seit Stunden verzweifelt daran sitze.


Vielen Dank und mit freundlichen Grüßen!
 

Anhänge

  • t1.png
    t1.png
    207,5 KB · Aufrufe: 40
  • t2.png
    t2.png
    60,8 KB · Aufrufe: 30

YDB

Mitglied
Keiner soll was machen. Ich fänd' es sehr nett, falls mir jemand erklären könnte, was es mit dem md5Hash auf sich hat und wie ich das so implementieren könnte, dass die PIN-Nummer - gemäß Aufgabe- abgespeichert wird. Den ganzen Code habe ich mitgegeben, falls jemand sehen will, was ich bisher habe. Natürlich erwarte ich von keinem, dass er mir die Aufgabe auf dem Silbertablett serviert. Einfach eine Hilfestellung für ein Neuling.


Liebe Grüße
 

Libentis

Aktives Mitglied
Was ein MD5 Hash ist weißt du vermutlich?
Java:
    public static void main(String[] args) {
        String input = "1234";
        String pinAlsMD5 = getMD5Hash(input);
      
        System.out.println(pinAlsMD5.equals(getMD5Hash(input))); // Wird true ausgeben
    }
  
  
    private static String getMD5Hash(String input) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(input.getBytes());
            byte[] bytes = md.digest();
            StringBuilder sb = new StringBuilder();
            for(byte b : bytes)
                sb.append(Integer.toHexString(b & 0xff));
            return sb.toString();
        } catch (NoSuchAlgorithmException ex) {
            Logger.getLogger(MD5.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "Fehler";
    }
Die Berechnung habe ich bei Yt geklaut.
Speicherst also einfach den PIN als MD5. Wenn jetzt jemand Geld abheben will vergleichst du einfach den gespeicherten PIN mit dem eingebeben PIN als MD5 (Wie in der main zu sehen).
 

YDB

Mitglied
Vielen Dank für die Antwort. Ich bastel mal ein bisschen und schaue mal, ob das System eine Abweichung akzeptiert, da ein Programm den Quellcode testet.


Vielen lieben Dank Libentis
 

Neue Themen


Oben