1

このコードについて本当に助けが必要です。これを実行していただければ幸いです。これらのコメントは気にしないでください。私はドイツ語で作成しました。

パスワード(水など)を入力する必要があります。これは、長さを設定する必要があるパスワードに暗号化されます。その後、水をもう一度入力して同じパスワードを入力すると、暗号化されて同じように表示されます。

    import java.io.UnsupportedEncodingException; 
    import javax.swing.JOptionPane;
    import com.sun.org.apache.xerces.internal.impl.dv.util.HexBin;
    import javax.crypto.SecretKey;
    import javax.crypto.SecretKeyFactory;
    import javax.crypto.spec.PBEKeySpec;
    import java.security.NoSuchAlgorithmException;
    import java.security.spec.InvalidKeySpecException;

    public class PasswortGen
    {
    static final int SOLL_LAENGE_EINGABE = "laenge".length();
    static final int POSITION_DOPPELPUNKT = 2;
    static final String Masterpasswort = JOptionPane.showInputDialog("Geben Sie Ihr Masterpasswort ein");
    static final String Versionsnummer = "Geben Sie die Website, sowie die aktuelle Versionsnummer ein";
    static final String Kennung = "Geben Sie Ihre Kennung ein";
    static final String laenge = JOptionPane.showInputDialog("Geben Sie die gewünschte Laenge ein (16 - Empfohlen)");



    public static void main(String[] args) throws UnsupportedEncodingException { /*
         * Die main1-Methode kombiniert alle Methoden zu Erstellung eines Passwords und leifert diesen als String, mit Hilfe der Konsole, aus.
         */



        String password = "pass"; //Dem Datentyp String mit der Erkennung password wird der Wert "pass" zugewiesen

        String salt = "1234";//Dem Datentyp String mit der Erkennung salt wird der Wert "1234" zugewiesen

        int iterations = 10000;//Dem Datentyp Int mit der Erkennung iterations wird der Wert 10000 zugewiesen

        int keyLength = 16 ; //Dem Datentyp Int mit der Erkennung keyLength wird der Wert 16 zugewiesen, also das Passwort hat eine Lönge von 16

        char[] passwordChars = password.toCharArray(); //Dem Datentyp Char[] mit der Erkennung passwordChars weist die Charakters zu.

        byte[] saltBytes = salt.getBytes(); //Dem Datentyp byte mit der Erkennung saltBytes wird der Wert von saltBytes nachgefragt.



        byte[] hashedBytes = hashPassword(passwordChars, saltBytes, iterations, keyLength); // WEIS ICH NICHT

        String hashedString = HexBin.encodeHexString(hashedBytes); // WEIS ICH NICHT



        System.out.println(hashedString); //Die Konsole liefert den String "hashedString".
    }

/*
* Die main1-Methode kombiniert alle Methoden zu Erstellung eines Passwords und leifert diesen als String, mit Hilfe der Konsole, aus.
*/



            public static byte[] hashPassword( final char[] password, final byte[] salt, final int iterations, final int keyLength ) {



                try {

                    SecretKeyFactory skf = SecretKeyFactory.getInstance( "PBKDF2WithHmacSHA512" );

                    PBEKeySpec spec = new PBEKeySpec( password );

                    SecretKey key = skf.generateSecret( spec );

                    byte[] res = key.getEncoded( );

                    return res;

                } catch ( NoSuchAlgorithmException | InvalidKeySpecException e ) {

                    throw new RuntimeException( e );

                }

            }


    }

前もって感謝します!

4

0 に答える 0