Eclipse – die besten Beiträge

Woran könnte es liegen, dass die Entschlüsselung der AES verschlüsselten Nachricht vom Client auf der Serverseite nicht korrekt funktioniert?

Beschreibung:

Ich habe eine Client-Server-Anwendung, bei der der Server einen Befehl an den Client sendet, der diesen Befehl auf dem Client ausführt und dann das Ausgaberesultat zurück an den Server schickt. Der Command-Output wird verschlüsselt, bevor er an den Server gesendet wird, und sollte auf der Serverseite entschlüsselt werden, um die Ausgabe anzuzeigen.

Ablauf:

Client:

public void executeCommand() {
    try {
        Process p = Runtime.getRuntime().exec("cmd /c " + commandInput);
        p.getOutputStream().close();


        InputStream processStdOutput = p.getInputStream();
        Reader r = new InputStreamReader(processStdOutput);
        BufferedReader br = new BufferedReader(r);
        String line;


        while ((line = br.readLine()) != null) {
            writeToServerSocket("cmd18721378231dcad2");
            writeToServerSocket(line + "\n");
            writer.flush();
        }


        p.waitFor();
    } catch (Exception ex) {
        System.out.println(ex.getLocalizedMessage());
    }
}

public void writeToServerSocket(String message) {
	try {
		String encodedMessage = EncryptionHelper.encrypt(message);
		writer.write(encodedMessage);
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

Server:

In einer Dauerschleife wird überprüft:

...
String encryptedInput = scanner.nextLine();
            		String input = EncryptionHelper.decrypt(encryptedInput); // Hier vermutlich Fehler
...
else if (input.contains("cmd18721378231dcad2")) {
    String commandOutput = input.substring(19);
    // Problem: Die Entschlüsselung des commandOutput funktioniert nicht korrekt
    // Hier sollte der entschlüsselte Text angezeigt werden
    controller.updatejTextAreaAllChat(commandOutput + "\n");
}

...

Problem:

Der verschlüsselte Command-Output wird vermutlich (nicht komplett sicher da System.out.println zum debuggen beim Server nicht funktioniert aus welchem Grund auch immer) erfolgreich an den Server gesendet, aber die Entschlüsselung auf der Serverseite funktioniert nicht wie erwartet. Der entschlüsselte Text wird nicht korrekt angezeigt, und es wird sobald ich die Anwendung beende die Fehlermeldung "Input byte array has incorrect ending byte" angezeigt.

Code für die Verschlüsselung/Entschlüsselung:

public class EncryptionHelper {
    private static final String KEY = "mysecretkey";


    public static String encrypt(String plainText) throws Exception {
        // ... (Verschlüsselungslogik)
    }


    public static String decrypt(String encryptedText) throws Exception {
        // ... (Entschlüsselungslogik)
    }
}

Was habe ich bereits versucht:

  • Die Übertragung der verschlüsselten Daten wurde überprüft und scheint intakt zu sein.
  • Die Verschlüsselungslogik wurde überprüft und sie scheint korrekt zu sein.
  • Andere Bereiche des Codes wurden überprüft, um sicherzustellen, dass sie das Entschlüsselungsproblem nicht verursachen.
Java, Code, Eclipse, encryption, Socket

Wie ändere ich die Größe der einzelnen JPanels bei einem BorderLayout in Java?

Hallo.

Ich habe in Java einen JFrame erstellt in dem ein JPanel ist, indem sich ein anderes JPanel (mit BorderLayout) befindet das 2 JPanels enthält.

Also so etwa:

JFrame/JPanel/JPanel(BL)
              > JPanel(NORTH)
              > JPanel(SOUTH)

(BL = BorderLayout)

Ich will das die 2 JPanels die in den BL sind so angeordnet sind wie das Spielfeld und das Inventar bei den Zelda NES Spiel aus den 90ern (Bild unten).

Das nördliche JPanel(NORTH) soll das Inventar sein während das südliche(SOUTH) das Spielfeld sein soll auf dem sich das eigentliche Geschehen mit dem Spieler, NPCs, Map usw. abspielt.

Jetzt ist jedoch das Problem dass das JPanel dass das Spielfeld ist fast den ganzen Platz einnimmt:

Spielfeld Panel (Schwarz). Inventar Panel (Grün)

Ich will jedoch das es ungefähr so angeordnet ist:

Wie zu sehen ist, ist bei dem Zelda Spiel das Inventar deutlich größer, während es bei mir eher wie ein Strich aussieht.

Ich habe die Größe des Spielfeld Panels schon definiert, die des Inventar Panels auch.

Ich habe die beiden Panels (Spielfeld und Inventar) in das JP mit dem BL gemacht, welches ich einen anderen JPanel hinzugefügt habe, welches sich im JFrame befindet.

Dann habe ich das JFrame der Größe seiner JPanels eingeglichen mit frame.pack()

(Mein JFrame heißt frame)

Ich habe versucht die Größe der beiden Panels auf verschiedenste Art und Weise zu ändern, jedoch ohne Erfolg.

Ich würde mich freuen wenn jemand eine Lösung dafür kennt.

Danke im voraus.

Bild zum Beitrag
programmieren, Java, Eclipse, Programmiersprache, Swing, Java Swing

Eclipse fehler beim installieren?

hallo ich habe vor kurzem meinen pc upgegradet und alles neu installier inclusive windows 10...nur habe ich jetzt das problem dass ich mir Eclipse nicht merh herunterladen kann da ich die ganze zeit eine fehler meldung bekomme...kann mir jemand helfen???

Ende des Log files:
(ganz viele andere Dowlnloads...)

[2023-06-04 19:09:15] Downloading org.eclipse.mylyn.wikitext.asciidoc

[2023-06-04 19:09:15] Collected 467 artifacts for https://download.eclipse.org/releases/2023-03/202303151000 in 0.259s

[2023-06-04 19:09:15] An error was detected while performing the engine operation and the changes are being rolled back. See the log for details.

[2023-06-04 19:09:15] ERROR: org.eclipse.equinox.p2.engine code=4 An error occurred while collecting items to be installed

 at org.eclipse.oomph.util.OomphPlugin.coreException(OomphPlugin.java:296)

 at org.eclipse.oomph.p2.internal.core.ProfileTransactionImpl$3.commit(ProfileTransactionImpl.java:578)

 at org.eclipse.oomph.p2.internal.core.ProfileTransactionImpl.commit(ProfileTransactionImpl.java:359)

 at org.eclipse.oomph.setup.p2.impl.P2TaskImpl.perform(P2TaskImpl.java:904)

 at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.doPerformNeededSetupTasks(SetupTaskPerformer.java:3864)

 at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performNeededSetupTasks(SetupTaskPerformer.java:3792)

 at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.performTriggeredSetupTasks(SetupTaskPerformer.java:3773)

 at org.eclipse.oomph.setup.internal.core.SetupTaskPerformer.perform(SetupTaskPerformer.java:3651)

 at org.eclipse.oomph.setup.internal.installer.SimpleVariablePage.installPerform(SimpleVariablePage.java:1353)

 at org.eclipse.oomph.setup.internal.installer.SimpleVariablePage$20.run(SimpleVariablePage.java:1165)

 ERROR: org.eclipse.equinox.p2.engine code=0 session context was:(profile=C__Users_Noni_eclipse_java-2023-03_eclipse, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).

 ERROR: org.eclipse.equinox.p2.artifact.repository code=1003 Unable to write to repository: file:/C:/Users/Noni/Downloads/%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00.

 java.io.IOException: Failed to create directory C:\Users\Noni\Downloads\

Java, Eclipse, Softwareproblem, eclipse java

Meistgelesene Beiträge zum Thema Eclipse