Schlüsselwörter für Suchende: Verschlüsseln, AES, DES...
Hallo!
Proprietär klingt nach Kosten :-(
may be removed in a future realease nach angekündigtem Ärger...
Wie gehe ich vor,. wenn der Compiler folgende Meldung ausspuckt?
warning: sun.misc.BASE64Encoder is Sun proprietary API and may be removed in a future release
Muss hier umkodiert werden, weil es die Klasse "BASE64Encoder" irgendwann gar nicht mehr geben wird?
Ich hoffe nicht!
Ich vermute und hoffe, eine schön einfach zu beantwortende Frage zu stellen
Den Code habe ich aus dem Buch Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 26.6 Verschlüsseln von Daten(-strömen) (Kapitel 26.6.3)
Zum Nachvollziehen ein KSKB (Falls jemand trotzdem damit Verschlüsseln mag....es funzt noch):
Hallo!
Proprietär klingt nach Kosten :-(
may be removed in a future realease nach angekündigtem Ärger...
Wie gehe ich vor,. wenn der Compiler folgende Meldung ausspuckt?
warning: sun.misc.BASE64Encoder is Sun proprietary API and may be removed in a future release
Muss hier umkodiert werden, weil es die Klasse "BASE64Encoder" irgendwann gar nicht mehr geben wird?
Ich hoffe nicht!
Ich vermute und hoffe, eine schön einfach zu beantwortende Frage zu stellen
Den Code habe ich aus dem Buch Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 26.6 Verschlüsseln von Daten(-strömen) (Kapitel 26.6.3)
Zum Nachvollziehen ein KSKB (Falls jemand trotzdem damit Verschlüsseln mag....es funzt noch):
Code:
package desencrypter;
import java.io.UnsupportedEncodingException;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.KeySpec;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.PBEParameterSpec;
public class DesEncrypter {
Cipher ecipher;
Cipher dcipher;
// 8-byte Salt
byte[] salt = {
(byte)0xA9, (byte)0x9B, (byte)0xC8, (byte)0x32,
(byte)0x56, (byte)0x35, (byte)0xE3, (byte)0x03
};
// Iteration count
int iterationCount = 19;
public DesEncrypter(String passPhrase) {
try {
// Create the key
KeySpec keySpec = new PBEKeySpec(passPhrase.toCharArray(), salt, iterationCount);
SecretKey key = SecretKeyFactory.getInstance(
"PBEWithMD5AndDES").generateSecret(keySpec);
ecipher = Cipher.getInstance(key.getAlgorithm());
dcipher = Cipher.getInstance(key.getAlgorithm());
// Prepare the parameter to the ciphers
AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, iterationCount);
// Create the ciphers
ecipher.init(Cipher.ENCRYPT_MODE, key, paramSpec);
dcipher.init(Cipher.DECRYPT_MODE, key, paramSpec);
} catch (java.security.InvalidAlgorithmParameterException e) {
} catch (java.security.spec.InvalidKeySpecException e) {
} catch (javax.crypto.NoSuchPaddingException e) {
} catch (java.security.NoSuchAlgorithmException e) {
} catch (java.security.InvalidKeyException e) {
}
}
public String encrypt(String str) {
try {
// Encode the string into bytes using utf-8
byte[] utf8 = str.getBytes("UTF8");
// Encrypt
byte[] enc = ecipher.doFinal(utf8);
// Encode bytes to base64 to get a string
return new sun.misc.BASE64Encoder().encode(enc);
} catch (javax.crypto.BadPaddingException e) {
} catch (IllegalBlockSizeException e) {
} catch (UnsupportedEncodingException e) {
} catch (java.io.IOException e) {
}
return null;
}
public String decrypt(String str) {
try {
// Decode base64 to get bytes
byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str);
// Decrypt
byte[] utf8 = dcipher.doFinal(dec);
// Decode using utf-8
return new String(utf8, "UTF8");
} catch (javax.crypto.BadPaddingException e) {
} catch (IllegalBlockSizeException e) {
} catch (UnsupportedEncodingException e) {
} catch (java.io.IOException e) {
}
return null;
}
public static void main( String[] args ) throws Exception {
try {
// Create encrypter/decrypter class
DesEncrypter encrypter = new DesEncrypter("keystring");
String string = "Mein Passwort";
// Encrypt
String encrypted = encrypter.encrypt(string);
// Decrypt
String decrypted = encrypter.decrypt(encrypted);
System.out.println("Unverschlüsselt: " + string);
System.out.println("Verschlüsselt: " + encrypted);
System.out.println("Unverschlüsselt: " + decrypted);
} catch (Exception e) {}
}
}
Zuletzt bearbeitet von einem Moderator: