AES-Verschlüsselung mit eigenem 256 Bit Schlüssel

thomas235

Mitglied
Hallo zusammen,

ich zerbreche mir schon seit einiger Zeit den Kopf darüber, wie ich einen String mit AES verschlüsseln kann und dabei selbst den Schlüssel festlegen kann (den Schlüssel bekomme ich über DiffieHellman).

Auch google und sonstige Suchfunktionen haben mir keine brauchbaren Ergebnisse geliefert.

Diese Seite:
AES 256 bits encrypter/decrypter - Java source code - DevKB.org
hat einen unter Linux funktionierenden Ansatz geliefert, der unter Windows seltsamerweise überhaupt nicht funktioniert.

Weiß von euch vllt jemand, wie man sogar mit einer Java Library einen 256 Bit Schlüssel realisiert?

gruß thomas235
 
J

J7Dev

Gast
Richtig, für Rjindeal-256 brauchst du entweder eine freie Lib wie BouncyCastle oder die "unlimited crypto-policy" was dann aber vorraussetzung für ALLE VMs ist auf denen der Code laufen soll -> extrem schlechte Idee.

Und die Bezeichnung "AES-256" ist sowieso falsch da AES auf eine Schlüssellänge von 128 festgelegt ist. Nur der zugrunde liegende Rjindeal-Algo kann mit Keys von 192 und 256 bit verwendet werden. Da dieser von Java aber so nicht richtig implementiert ist sondern eine art pseudo-AES-256 darstellt ist die Funktionsweise nicht gesichert. Wenn es unbedingt Rjindeal-256 sein muss würde ich wirklich zu BouncyCastle raten, mit Java eigenen Mitteln ist es eher ein Krampf da die policy in jeder VM installiert werden müsste auf der es laufen soll, BC hingegen kannst du einfach als Bundle mitliefern.
 

thomas235

Mitglied
schonmal danke für die Antwort.
muss ich um diese Policies verwenden zu können zusätzliche Dateien installieren, bzw müssen das alle Anwender auch tun?
dann wäre das eher keine Option für mich
 
J

J7Dev

Gast
Dann wird die policy für dich wohl eher keine Option da dies wie gesagt von allen gemacht werden müsste. BC ist hier wohl dann doch eher die richtige Wahl.
 

thomas235

Mitglied
kennt jemand vllt ein gutes Tutorial, wie BouncyCastle zu verwenden ist?

am besten in der Art:

"Schlüssel zuweisen;
Nachricht verschlüsseln;
Nachricht entschlüsseln"

gruß thomas235
 

Lumaraf

Bekanntes Mitglied
Es müßte eigentlich ausreichen [c]Security.addProvider(new BouncyCastleProvider());[/c] aufzurufen. Dann registriert sich BC für die schon vorhanden crypto-Schnittstellen in Java.
 

thomas235

Mitglied
danke schonmal :) ich denke das mit den 256 Bit hat geklappt, aber was mir noch fehlt ist, wie ich meinen eigenen Schlüssel da reingrieg und keinen generieren lasse.
Bisher sieht das so aus:
Java:
        Security.addProvider(new BouncyCastleProvider());

        // Get the KeyGenerator

        KeyGenerator kgen = KeyGenerator.getInstance("AES");
        kgen.init(256); // 192 and 256 bits may not be available


        // Generate the secret key specs.
        skey = kgen.generateKey();
        byte[] raw = skey.getEncoded();

        skeySpec = new SecretKeySpec(raw, "AES");


        // Instantiate the cipher

        cipher = Cipher.getInstance("AES");

also meine Idee wäre meinen Schlüssel (den Client und Server schon kennen) in die Variable "raw" einzutragen
bringt das den gewünschten Effekt?

gruß thomas235
 
Zuletzt bearbeitet:

HoaX

Top Contributor
Code:
byte[] raw = ...
ist dein Key. Du musst ja keinen KeyGenerator nutzen wenn du nicht magst.

Edith sagt: übersehen dass du unter dem Code noch weitergeschrieben hattest, also: ja, raw ist das wofür du es hältst.
 

thomas235

Mitglied
alles klar, danke euch

ich werd das demnächst alles in mein Programm einbauen

ach ja, brauch ich die BouncyCastle Lib überhaupt, wenn ich den Key mit 256 Bits (also ein Byte Array mit 32 Bytes) direkt in raw eintrage? wenn ich die Zeile mit dem Provider weglasse erhalte ich trotzdem das gleiche Ergebnis.
 

thomas235

Mitglied
Guten Morgen zusammen,

habe jetzt alles in mein Programm eingebaut, den Provider BouncyCastle hab ich auch noch drin, unter Linux läuft mit und ohne Provider alles einwandfrei, aber unter Windows kommt natürlich die Illegal KeySize Excetion und dass der Provider die Schlüssellänge nicht unterstützt.
Unter Linux läuft die JDK1.6, unter Windows nur die JRE 7 weiß jemand, wie ich das in den Griff griege?

gruß thomas235
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M pfx-Zertifikat in Tomcat für SSL-Verschlüsselung nutzen Allgemeine Java-Themen 14
X Verschlüsselung Allgemeine Java-Themen 18
P String-Verschlüsselung - Frage zur Sicherheit Allgemeine Java-Themen 21
R Verschlüsselung falsch Allgemeine Java-Themen 3
R Verschlüsselung funktioniert nicht Allgemeine Java-Themen 5
J Passwort Verschlüsselung hash Allgemeine Java-Themen 2
D AES Verschlüsselung / Wirklich AES 128-Bit? Allgemeine Java-Themen 4
I Best Practice Verschlüsselung mit SALT Allgemeine Java-Themen 4
A Mehrfache XOR Verschlüsselung Allgemeine Java-Themen 11
Thallius Moderne sichere synchrone Verschlüsselung mit Java? Allgemeine Java-Themen 3
Ananaskirsche Verschlüsselung mit AES Allgemeine Java-Themen 4
E Verschlüsselung Allgemeine Java-Themen 4
F Schlüsselworte RSA Verschlüsselung implementieren Allgemeine Java-Themen 5
S Key (für AES-Verschlüsselung) aus String Allgemeine Java-Themen 4
M Serialisierung & Verschlüsselung Allgemeine Java-Themen 2
K Problem mit Salted - Verschlüsselung Allgemeine Java-Themen 4
Z Java E-Mail Client mit End-to-End-Verschlüsselung Allgemeine Java-Themen 4
J Verschlüsselung von Text? Allgemeine Java-Themen 2
K Vigenere- Verschlüsselung Allgemeine Java-Themen 13
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
DStrohma Verschlüsselung: SALT aus Passwort generieren? Allgemeine Java-Themen 3
G AES Verschlüsselung nur bis 63 Zeichen Länge Allgemeine Java-Themen 2
M Verschlüsselung mit Cipher Allgemeine Java-Themen 5
B XOR Verschlüsselung Allgemeine Java-Themen 7
S Framework für symetrische und asymetrische Verschlüsselung Allgemeine Java-Themen 3
lumo Verschlüsselung Allgemeine Java-Themen 2
H Verschlüsselung mit Blowfish Allgemeine Java-Themen 14
C Interpreter-Fehler AES verschlüsselung mit MD5 key Allgemeine Java-Themen 6
S AES Verschlüsselung - File Headers korrupt Allgemeine Java-Themen 10
A Datei, UTF-8, NTRU-Verschlüsselung Allgemeine Java-Themen 3
B "Verschlüsselung" mit Passwort (XOR bzw. Modulo) Allgemeine Java-Themen 7
B String Verschlüsselung Allgemeine Java-Themen 6
M Verschlüsselung anwenden Allgemeine Java-Themen 6
J Verschlüsselung Allgemeine Java-Themen 22
T MD5 Verschlüsselung Nullen fehlen? Allgemeine Java-Themen 2
L [Exception] RSA Verschlüsselung. Allgemeine Java-Themen 16
C javamail signatur und verschlüsselung Allgemeine Java-Themen 2
R 128 Bit Verschlüsselung/Entschlüsselung in Java? Allgemeine Java-Themen 6
F RSA-Verschlüsselung Allgemeine Java-Themen 4
S Verschlüsselung in Java Allgemeine Java-Themen 2
G Interessant! Verschlüsselung in Java, Charset in der JVM? Allgemeine Java-Themen 14
D Eigener Key bei AES Verschlüsselung Allgemeine Java-Themen 4
T Verschlüsselung von Dateien Allgemeine Java-Themen 8
S Verschlüsselung - IllegalBlockSizeException Allgemeine Java-Themen 3
G Problem mit RSA Verschlüsselung bei .net und Java Allgemeine Java-Themen 1
D Caesar und Vigenère Verschlüsselung Allgemeine Java-Themen 2
alexpetri Verschlüsselung Allgemeine Java-Themen 13
@ [Sicherheit] Speicherung von Keys für Verschlüsselung Allgemeine Java-Themen 4
P Verschlüsselung in PHP -> Entschlüsselung in Java Allgemeine Java-Themen 2
Lazybone Caeser Verschlüsselung Allgemeine Java-Themen 6
S Verschlüsselung mit Cipher Allgemeine Java-Themen 8
S Verschlüsselung Allgemeine Java-Themen 15
J Problem mit Dateien/XOR-Verschlüsselung Allgemeine Java-Themen 5
G RSA-Verschlüsselung Allgemeine Java-Themen 1
P HMACMD5- Verschlüsselung entschlüsseln Allgemeine Java-Themen 2
I Verschlüsselung mit Pwd. - User soll Algorithmus wählen Allgemeine Java-Themen 4
J Probleme bei XOR verschlüsselung ! Allgemeine Java-Themen 5
G Verschlüsselung in Java Allgemeine Java-Themen 9
M RSA Verschlüsselung Allgemeine Java-Themen 7
J Verschlüsselung von Daten Allgemeine Java-Themen 21
Zrebna Zuverlässiges Automatisiertes Testen im eigenem Software-Unternehmen aufsetzen - How to? Allgemeine Java-Themen 12
C Frage zu eigenem TableCellRenderer Allgemeine Java-Themen 11
MiMa Log4j in Dateien mit eigenem Namen schreiben Allgemeine Java-Themen 3
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Allgemeine Java-Themen 3
N ArrayList in eigenem Object nicht richtig serialisierbar Allgemeine Java-Themen 14
M Über Liste verschiendene JComponents mit eigenem implementierten Interface ansprechen Allgemeine Java-Themen 7
K Programm startet nur auf eigenem Rechner??? Allgemeine Java-Themen 6
Dragonfire Datentypen Map effizient mit eigenem Key Allgemeine Java-Themen 71
DStrohma Jede node in JTree mit eigenem Icon Allgemeine Java-Themen 7
M Eigenem Dateiformat Icon zuweisen Allgemeine Java-Themen 6
S Problem mit eigenem DatenTyp. HILFE!!! Allgemeine Java-Themen 4
M jdbc treiber (h2) mit eigenem ClassLoader laden Allgemeine Java-Themen 4
D Abstruse Probleme mit eigenem replace Algorithmus Allgemeine Java-Themen 11
R HashSet mit eigenem Objekt als Key Allgemeine Java-Themen 10
A jpeg Files mit eigenem Programm öffnen Allgemeine Java-Themen 4
F Probleme mit eigenem Plugin-System Allgemeine Java-Themen 3
H externe JARs in eigenem Programm-Jar einbinden. Allgemeine Java-Themen 5
F "source not found" in eigenem Projekt mit eigenen Allgemeine Java-Themen 2
W Externes Programm beenden mit eigenem Programm beenden Allgemeine Java-Themen 7
D Programm mit eigenem ClassLoader funktioniert nicht Allgemeine Java-Themen 12
K KeyEvent in eigenem Component geht nicht Allgemeine Java-Themen 3
R Problem beim speichern von eigenem objekt Allgemeine Java-Themen 6
J Java KeyStore Schlüssel Allgemeine Java-Themen 10
C AES addRoundKey Operation mit 192 Bit bzw 256 Bit Schlüssel Allgemeine Java-Themen 2
J Array als Schlüssel für HashMap Allgemeine Java-Themen 6
B Schlüssel von Java automatisch generieren lassen. Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben