String in array von Bytes



  • Hallöchen,

    habe versuchsweise ein Applet mit Login-Funktionalität geschrieben mit folgendem Quelltext geschrieben:

    public class TestApp
    extends JApplet
    implements ActionListener
    {
    JTextField plainText;
    JPasswordField passText;

    public void init()
    {
    Container contentPane = getContentPane();
    //Panel
    JPanel plainPanel = new JPanel(new GridLayout(1, 2));
    JPanel passPanel = new JPanel(new GridLayout(1, 2));
    //Beschriftung
    plainPanel.add(new JLabel("pass plain:", JLabel.LEFT));
    passPanel.add(new JLabel("Passwort:", JLabel.LEFT));
    //Textfield
    plainText = new JTextField(); plainPanel.add(plainText);
    passText = new JPasswordField(); passPanel.add(passText);
    //Button
    JButton login = new JButton("Anmelden");
    login.setBounds(100, 100, 50, 25); login.addActionListener(this);
    //Panel zum Content
    contentPane.add(plainPanel, BorderLayout.NORTH);
    contentPane.add(passPanel, BorderLayout.CENTER);
    contentPane.add(login, BorderLayout.SOUTH);

    }

    public void forwardToCheck()
    {
    char[] passChar = passText.getPassword();
    String passwort = String.valueOf(passChar);
    plainText.setText(passwort);
    byte[] passByte = String.getBytes(passwort);
    }

    public void actionPerformed(ActionEvent event)
    {
    forwardToCheck();
    }
    }

    In das PasswordField wird das Passwort eingeben, und beim Klick auf Anmelden für mich zur Kontrolle durch die Methode forwardToCheck() ausgelesen und plain in das Textfeld plainText geschrieben.
    Um aber einen MD5-Hash zu erzeugen, brauche ich von dem Passwort ein Byte-Array. Dazu wollte ich mich der Methode getBytes() aus der Klasse String bedienen. Beim kompilieren, bekomme ich jetzt aber folgende Fehlermeldung:

    non-static method getBytes(java.lang.String) cannot be referenced from a static context byte[] passByte = String.getBytes(passwort);

    Würde mich über eine baldige Antwort freuen.

    Vielen Dank

    Gruß Stefan



  • Hi

    wie die Fehlermeldung schon zu erkennen gibt. ist die Methode die du aufrufst nicht static. Daruch kannst du die auch nicht mit String.getByte() aufrufen.

    versuchs mal mit password.getByte() das ist die Methode die du suchst.

    gruss Termite



  • Hi erstmal Danke für die Antwort, auch wenn sie mir nicht wirklich geholfen hat, denn String.getBytes() ist das gleiche wie passwort.getBytes().

    Würde mich über weitere Hinweise freuen.

    Gruß Stefan



  • Diese Methode ist nicht statisch, das heisst, sie muss in Kontext mit einem Objekt aufgerufen werden!
    String.getBytes() KANN doch gar nicht gehen, von welchem String willst du denn die Bytes?
    Termite hat völlig Recht.



  • Okay, hab jetzt verstanden, worauf Termite hinaus wollte - habe weiterhin versucht getBytes() als Übergabeparamer einen String zu übergeben. Das die Methode in dieser Form aber keinen hat, ist mir aus seiner Antwort nicht sofort klar geworden.
    Aber jetzt gehts - also vielen Dank an euch beide

    Gruß Stefan


Anmelden zum Antworten