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
Wieso funktioniert der Code nicht?

binärbaum:

wenn ich das in der main erstelle mit

Tree t1 = new Tree();
t1.add(9);
t1.add(1);
t1.add(23);
und dann t1.root ausprinte funktinoiert es, aber t1.root.left liefert null, also es gibt nen fehler, wieso aber?

hat es was damit zu tun " parent = new TNode(data);" ?ich übergeben den linken knoten der wurzel und das ist jetzt parent, und dann weise ich parent neu zu also ich weise den linken knoten der wurzel neu zu, wieso geht das aber nicht?


public class Tree {
    TNode root;


    Tree(){
        this.root = null;
    }


    public void add(int data){
        if(root == null){
            root = new TNode(data);
        }else{
            if(data < this.root.data){
                add(data, root.left);
                System.out.println("miosty");
            }else {
                add(data, root.right);
            }
        }
    }
     public void add(int data, TNode parent){
        if(parent == null){
            System.out.println("Zu");
           parent = new TNode(data);
        }else{
            if(data < parent.data){
                add(data, parent.left);
            } else {
                add(data, parent.right);
            }
        }
    }
}
HTML, Webseite, Java, JavaScript, Array, Code, PHP, Programmiersprache, Python, Webentwicklung, Algorithmus
IT-Fachkräfte im Informatik Unterricht in Schulen?

Hallo,

der klassische Weg um in Deutschland Lehrer zu werden ist über ein Lehramtsstudium oder mit zunächst Berufserfahrung sammeln im jeweiligen Fachbereich und dann auch mit einem Studium Berufsschullehrer werden.

Doch sind wir uns selbst mal gegenüber ehrlich welcher Fachinformatiker wird freiwillig, wenn er nicht auf den Kopfgefallen ist und 9+ Jahre Berufserfahrung hat auf das Jahresgehalt von jenseits über den 50.000,€ verzichten, um in einer unterbezahlten Lehrer Position anzufangen ?

Dieses Phänomen macht sich an den grund- und weiterbildenden Schulen [Grundschule, Realschule, Gymnasium,...] bemerkbar.

In den ersten Schuljahren gelten wichtigere Prioritäten wie lesen und schreiben lernen.

Doch aller spätestens ab der 5. Klasse werden die ersten Grundkenntnisse zum Computer vermittelt .

Im Unterricht wird meist mit den wichtigsten Office Programmen aus dem Hause Microsoft oder Open Office angefangen, doch dies zieht sich meiner Erfahrung nach bis zum Erhalt des Abschlusses.

Schüler mit Technischem Interesse erledigen die Textformatierung- oder Tabellenkalkulationsaufgabe in unter 15 Minuten und langweilen sich dann die Restliche Zeit der Unterrichtsstunde.

Und trotz des Informatikunterrichts werden IT´ler Tagtäglich zu Fehlertickets her zitiert wie z.B. mein Drucker druckt nicht, Passwort vergessen, Herr/Frau Ich-weiß-alles-besser und weiteren gerufen.

Bei uns in der Kommune hat nun ein neuer junger Bürgermeister angefangen, der sich die Digitalisierung auf die Fahne geschrieben hat.

Meine Idee wäre ihn an sein Wahlprogramm zu erinnern ihm von meiner damaligen Erfahrung mit Win 2000 im Jahre 2009 im Informatikunterricht  zu berichten und den späteren Erfahrungen in der weiterführenden Schule mit dem Quantensprung auf Windows 10.

Gleichzeitig möchte ich auch einen Vorschlag unterbreiten, um die Schüler für die sich stetig weiterentwickelte Computerwelt zu wappnen auch in Bezug auf das Internet [Social Media,..] und den damit verbundenen Risiken.

Also konkret IT-Fachkräfte planen aktiv den Unterricht gemeinsam mit den Lehrkräften, bieten außerdem eine Informatik AG an und kümmern sich um die IT-Infrastruktur der Schule.

Funfakt unser damaliges Netzwerk war so schlecht eingerichtet, dass jeder Schüler Admin Rechte am PC hatte und mit etwas Ahnung per Remote ganze Rechner herunterfahren konnte.

Wäre das rein rechtlich möglich das IT-Fachkräfte beratend ohne Lehrerstudium am Unterricht beteiligt sind ?

Bzw. der Bürgermeister das, wenn auch mit Abstimmung des KM einführen darf.

Computer, Microsoft Word, Lernen, Studium, Microsoft Excel, Schule, Microsoft PowerPoint, Netzwerk, HTML, CSS, Bildung, Java, Unterricht, JavaScript, Schüler, ASCII, Beamte, Fachinformatiker, Informatik, Informatiker, Informationstechnik, Informationstechnologie, Lehrer, Lehrerin, Pascal, Python, Team, turbo pascal, Rathaus, Bürgermeister, Fachinformatiker Systemintegration, kultusministerium, PowerShell, schulcomputer, Angular, lehren
ist das schwieriger code in Java?

bin mit listen und doppelten liste, stacks und queues fertig, polymorphie fange ich gerade an, wie viele tage brauche ich, um diesen code zu verstehen bzw. selbser zu implementieren

public class HashTable {
    public Object[] hashTable;
    private int numCollisions;


    public int getNumCollisions() {
        return numCollisions;
    }


    public HashTable(int size){
        hashTable = new Object[size];
        numCollisions = 0;
    }


    public void add(Object element){
        int elementIndex = getHashValue(element)%hashTable.length;
        int index = elementIndex;
        while (hashTable[index] != null){
            numCollisions++;
            index = (index + 1)%hashTable.length;
            if (index == elementIndex){
                System.out.println("Full");
                return;
            }
        }
        hashTable[index] = element;
    }


    private int getHashValue(Object element) {
        return element.hashCode();
    }


    public boolean contains(Object element){
        int elementIndex = getHashValue(element)%hashTable.length;
        int index = elementIndex;
        while (hashTable[index] != null){
            if (element.equals(hashTable[index])){
                return true;
            }
            index = (index + 1)%hashTable.length;
            if (index == elementIndex) {
                return false;
            }
        }
        return false;
    }


    public void print(){
        for (int i = 0; i < hashTable.length;i++){
            System.out.println(hashTable[i]);
        }
    }
}


Java, Array, Code, Programmiersprache, Algorithmus
Werden Software Entwickler durch KI ersetzt?

GPT4 kann ganz locker Snake, 4 gewinnt und GUIs programmieren. Der Chef von OpenAi redet schon von AGIs, die bald kommen sollen. Da frage ich mich einfach, ob es wirklich Sinn macht mein duales Studium in angewandter Informatik wirklich fortzusetzen.

Noch hilft mir GPT4 nicht wirklich in der Firma (Bank), da wir fast nur eigene Frameworks haben. Aber was wenn GPT5 oder bessere Modelle auch unsere Frameworks verstehen und dann eigenständig programmieren können?

Ich denke wirklich einfach abzubrechen und eine Handwerksausbildung bei einer sehr großen Firma zu machen. Ich sehe einfach nicht, dass GPT nicht in der Lage sein wird Banking Programme selbst zu schreiben. Ich bin nicht der beste Programmierer und bin sehr stark auf Banking Software spezialisiert.

Auch der OpenAI Chef meinte, dass es wohl aussieht, dass es erst Künstler und Programmierer trifft und zuletzt Handwerker.

Was ist eure Meinung? Hat Software Entwicklung Zukunft? Ich arbeite übrigens im öffentlichen Dienst, was mir ein bisschen mehr Sicherheit gibt, aber wenn KIs selbst programmieren, wird es meiner Meinung nach nicht mehr so viel Bedarf für Programmierer geben.

Ich will ganz entspannt meinen Job machen, ohne darüber nachzudenken, dass ich bald arbeitslos bin. Und ich würde gern für ein Eigenheim sparen usw. Da steht mir GTP einfach zu sehr im Weg. Was ist eure ehrliche Meinung? Könnte ich als Software Entwickler mindestens die nächsten 20-30 Jahre arbeiten?

Nein, hat Zukunft 100%
Ja, werden ersetzt 0%
Studium, Mathematik, Technik, IT, programmieren, Java, Code, Informatik, künstliche Intelligenz, Programmiersprache, Python, Softwareentwicklung, Student, Universität, ChatGPT

Meistgelesene Fragen zum Thema Java