Hallo,
wollte mich nun ein wenig mit dem Verschlüsseln mit Blowfish unter Java befassen. Habe ein wenig gegooglet und den folgenden Code gefunden:
Nun wollte ich gerne eine Datei einlesen, diesen String dann verschlüsseln und wieder in eine Datei schreiben. Dann diese Öffnen und einlesen, anschließend dann wieder entschlüsseln. Aber irgendwie klappt das noch nicht so wie es soll. Ich schätze, dass es ein Problem mit der Codierung gibt...
Der Aufruf lautet
bzw.
Dabei steht in plaintext bzw. ciphertext der eingelesene Text und in Key ein beliebiger Schlüssel.
wollte mich nun ein wenig mit dem Verschlüsseln mit Blowfish unter Java befassen. Habe ein wenig gegooglet und den folgenden Code gefunden:
Java:
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
public class Blowfish {
public static String encryptBlowfish(String to_encrypt, String strkey) {
try {
SecretKeySpec key = new SecretKeySpec(strkey.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish/ECB/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, key);
return new String (cipher.doFinal(to_encrypt.getBytes()));
//return new String(cipher.doFinal(to_encrypt.getBytes()));
} catch (Exception e) {
return null;
}
}
public static String decryptBlowfish(String to_decrypt, String strkey) {
try {
SecretKeySpec key = new SecretKeySpec(strkey.getBytes(), "Blowfish");
Cipher cipher = Cipher.getInstance("Blowfish/ECB/NoPadding");
cipher.init(Cipher.DECRYPT_MODE, key);
return new String (cipher.doFinal(to_decrypt.getBytes(),0,8));
//return new String(cipher.doFinal(to_decrypt.getBytes(), 0, 8));
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
Nun wollte ich gerne eine Datei einlesen, diesen String dann verschlüsseln und wieder in eine Datei schreiben. Dann diese Öffnen und einlesen, anschließend dann wieder entschlüsseln. Aber irgendwie klappt das noch nicht so wie es soll. Ich schätze, dass es ein Problem mit der Codierung gibt...
Der Aufruf lautet
Java:
String ciphertext = Blowfish.encryptBlowfish(plaintext,key);
Java:
String plaintext = Blowfish.decryptBlowfish(ciphertext, key);
Dabei steht in plaintext bzw. ciphertext der eingelesene Text und in Key ein beliebiger Schlüssel.