Hallo.
Als ein Übungs-Projekt, entwickle ich derzeit verschiedene Kryptographie Verfahren, beginnend mit der Caesar-Verschlüsselung.
Um es möglichst schlau zu machen, habe ich zuerst eine abstrakte Klasse namnes Encryption erstellt, die die wichtigsten variablen und methoden, jeder Verschlüsselungsmethode, die Ich umsetzen will, mit sich bringt.
Leider bekomme ich eine NullpointerException, obwohl ich im konstruktor den Array bereits initialisiert habe?
Im folgenden eine kurzzusammenfassung der essentiellsten Teile des Codes:
Hier habe ich einen IntegerKey hinzugefügt, da man bei der caesar verschlüssel nur eine zahl zum verschlüsseln benötigt.
Eine kurze Erklärung:
Gruß,
[unknown]
Als ein Übungs-Projekt, entwickle ich derzeit verschiedene Kryptographie Verfahren, beginnend mit der Caesar-Verschlüsselung.
Um es möglichst schlau zu machen, habe ich zuerst eine abstrakte Klasse namnes Encryption erstellt, die die wichtigsten variablen und methoden, jeder Verschlüsselungsmethode, die Ich umsetzen will, mit sich bringt.
Leider bekomme ich eine NullpointerException, obwohl ich im konstruktor den Array bereits initialisiert habe?
Im folgenden eine kurzzusammenfassung der essentiellsten Teile des Codes:
- Der Konstruktor der Encryption Klasse:
Java:
public Encryption(String text, String key){
this.text = text;
this.letters = text.toCharArray();
this.formattedText = new int[letters.length];
this.encryptedFormattedText = new int[letters.length];
this.key = key;
this.encryptedText = "";
convertTextToIndex();
}
- Die Caesar Klasse:
Java:
package com.Selenium_intelliJ;
public class Caesar extends Encryption {
int intKey;
public Caesar(String text, int intKey){
super(text);
this.intKey = intKey;
}
@Override
public String encrypt() {
int j = 0;
for(int i : super.formattedText){
super.encryptedFormattedText[j] = i + (intKey % 24);
j++;
}
super.convertIndexToText();
}
return super.encryptedText;
}
- Die Hauptklasse
Java:
public class Main {
public static void main(String[] args) {
Caesar c = new Caesar("abc", 2);
System.out.println(c.encrypt());
}
}
Eine kurze Erklärung:
- formattedText ist der zu verschlüsselnde Text als Array in Zahlen umgewandelt, mit der Entsprechenden Stelle des Buchtsabens im Alphabet
- encryptedFormattedText speichert dann die abgeänderte/verschlüsselte Variante der Zahl an der entsprechenden Position ab.
- convertIndexToText(); liest die in encryptedFormattedText neuen Zahlen ein, wandelt sie in einen String um und speichert diesen in der Variable encryptedText ab.
Gruß,
[unknown]