Hallo,
ich versuche jetzt seit 2 Stunden mit der Verschlüsselung klarzukommen aber ich habe nirgendwo die enstprechende Lösung gefunden. Es sollen einfach zwei Funktion entstehen, womit ich mittels individuellen Passwort(und auch unterschiedliche Passwortlänge) ver- und entschlüsseln kann.
Der test mit:
Die Variable "byte codebytes" soll dann in ein Arraylist rein, welches dann serialisiert gespeichert wird. Lasse ich mir aber nur die "codebytes" ausgeben, kommt immer das gleiche raus. Mit dem String aber nicht. Muss ich dann den String speichern und wie bin ich flexibler mit dem Key (Blowfish = 16 bytes)?
Hoffentlich konnte ich es etwas klar rüberbringen
Danke im Voraus.
ich versuche jetzt seit 2 Stunden mit der Verschlüsselung klarzukommen aber ich habe nirgendwo die enstprechende Lösung gefunden. Es sollen einfach zwei Funktion entstehen, womit ich mittels individuellen Passwort(und auch unterschiedliche Passwortlänge) ver- und entschlüsseln kann.
Code:
private byte[] verschluesseln(String verschluesselungsString, String passwortkey) {
byte verschluesselt[] = null;
try {
Key k = new SecretKeySpec(passwortkey.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.ENCRYPT_MODE, k);
verschluesselt = cipher.doFinal(verschluesselungsString.getBytes());
return verschluesselt;
} catch (Exception e) {
System.out.println(e.getMessage());
return verschluesselt;
}
}
private String entschluesseln(byte verschluesseltebytes[], String passwortkey) {
try {
Key k = new SecretKeySpec(passwortkey.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish");
cipher.init(Cipher.DECRYPT_MODE, k);
byte unverschlüsselt[] = cipher.doFinal(verschluesseltebytes);
String s = "";
for (int i = 0; i < unverschlüsselt.length; i++) {
char interim = (char) unverschlüsselt[i];
s += interim;
}
return s;
} catch (Exception e) {
System.out.println(e.getMessage());
return null;
}
}
Der test mit:
Code:
String wertzumverschluesseln = "Hallo2";
String passwort = "asdasds";
System.out.println("Verschlüsselt wird: ## " + wertzumverschluesseln + " ## mit ## " + passwort + " ##");
byte[] codebytes = verschluesseln(wertzumverschluesseln, passwort);
String s = "";
for (int i = 0; i < codebytes.length; i++) {
char interim = (char) codebytes[i];
s += interim;
}
System.out.println("Verschlüsselungsergebniss: " + s);
System.out.println("Entschlüsselt: " + entschluesseln(codebytes, passwort));
Die Variable "byte codebytes" soll dann in ein Arraylist rein, welches dann serialisiert gespeichert wird. Lasse ich mir aber nur die "codebytes" ausgeben, kommt immer das gleiche raus. Mit dem String aber nicht. Muss ich dann den String speichern und wie bin ich flexibler mit dem Key (Blowfish = 16 bytes)?
Hoffentlich konnte ich es etwas klar rüberbringen
Danke im Voraus.