128 Bit Verschlüsselung/Entschlüsselung in Java?

Status
Nicht offen für weitere Antworten.
Hi,

ich suche schon fast ewig nach einer Methode in Java Text mit 128 Bit zu verschlüsseln und zu entschlüsseln. Leider weiß ich nur selber nicht wie ich so etwas programmieren soll und ich habe auch keine vorgefertigten Klassen dazu gefunden. Könnt ihr mir helfen? Wäre schön, wenn jemand von euch so etwas besitzt und mir zur Verfügen stellen kann. Bin aber auch mit ein paar Anregungen zufrieden ;)

MFG
 
Leider hat mich der Link nicht wirklich weiter gebracht. Ich habe schon einen Key mit dem ich verschlüsselte Daten entschlüsseln will. Ich habe einen Code in VB6. Kann ich diesen in Java verwenden?
 

Jay_030

Aktives Mitglied
Zum Verschlüsseln in Java würde ich die BouncyCastle-Bibliothek empfehlen. Dieser Provider bietet zig Algorithmen und Vorgehensweisen zum Ver-/ und Entschlüsseln in Java an. Eine gute Dokumentation mit verschiedenen Beispielen findest du da auch.

Ansonsten hätte dir Google auch schneller helfen können. ;-)

The Legion of the Bouncy Castle Java Cryptography APIs
 
Ich hab wirklich mit Google gesucht, aber nichts passendes gefunden. Liegt evtl. daran das ich keine große Ahnung von Verschlüsselungen habe. Aber vielen Dank für den. Ich hoffe der bringt mich dieses mal weiter.
 
Ich schaffe es einfach nicht :( Ich verstehe die Texte von den Links nicht und bekomme ständig Fehlermeldungen.

Ich versuche nochmal mein Problem zu erklären und hoffe, dass mir jemand helfen kann.

Ich habe also diesen VB Code:

Java:
Option Compare Database
Option Explicit

'VERSION 1.0 CLASS
'Um eine Zeichenfolge zu verschlüsseln:
'VerschlüsselterText = Encrypt("Beispieltext", "Beispielpasswort")

'Um eine Zeichenfolge wieder zu entschlüsseln:
'NormalerText = Decrypt("VerschüsselterString", "Beispielpasswort")

'Bei Passwörtern, die kürzer als 11 Zeichen sind, wird
'die Zeichenfolge mit 80 Bit verschlüsselt, ansonsten
'mit 128 Bit.
'_________________________________________________________________
' Copyright ©2000 by SHADOWare, Thomas Bachem
'
' [url=http://www.SHADOWare.de]SHADOWare.de[/url]

Private x1a0(9) As Long
Private cle(17) As Long
Private x1a2 As Long

Private inter As Long, res As Long, ax As Long, bx As Long
Private cx As Long, dx As Long, si As Long, tmp As Long
Private i As Long, C As Byte

Private Sub Assemble128()
   x1a0(0) = ((cle(1) * 256) + cle(2)) Mod 65536
   code128
   inter = res
   
   x1a0(1) = x1a0(0) Xor ((cle(3) * 256) + cle(4))
   code128
   inter = inter Xor res
   
   x1a0(2) = x1a0(1) Xor ((cle(5) * 256) + cle(6))
   code128
   inter = inter Xor res
   
   x1a0(3) = x1a0(2) Xor ((cle(7) * 256) + cle(8))
   code128
   inter = inter Xor res
   
   x1a0(4) = x1a0(3) Xor ((cle(9) * 256) + cle(10))
   code128
   inter = inter Xor res
   
   x1a0(5) = x1a0(4) Xor ((cle(11) * 256) + cle(12))
   code128
   inter = inter Xor res
   
   x1a0(6) = x1a0(5) Xor ((cle(13) * 256) + cle(14))
   code128
   inter = inter Xor res
   
   x1a0(7) = x1a0(6) Xor ((cle(15) * 256) + cle(16))
   code128
   inter = inter Xor res
   
   i = 0
End Sub

Private Sub code128()
   dx = (x1a2 + i) Mod 65536
   ax = x1a0(i)
   cx = &H15A
   bx = &H4E35
   
   tmp = ax
   ax = si
   si = tmp
   
   tmp = ax
   ax = dx
   dx = tmp
   
   If (ax <> 0) Then
      ax = (ax * bx) Mod 65536
   End If
   
   tmp = ax
   ax = cx
   cx = tmp
   
   If (ax <> 0) Then
      ax = (ax * si) Mod 65536
      cx = (ax + cx) Mod 65536
   End If
   
   tmp = ax
   ax = si
   si = tmp
   ax = (ax * bx) Mod 65536
   dx = (cx + dx) Mod 65536
   
   ax = ax + 1
   
   x1a2 = dx
   x1a0(i) = ax
   
   res = ax Xor dx
   i = i + 1
End Sub

Public Function Encrypt128(ByVal Plaintext As String, ByVal Key As String) As String
   Dim sData As String
   Dim fois, champ1, lngchamp1, cfc, cfd, compte, d, e
   
   si = 0
   x1a2 = 0
   i = 0
   
   For fois = 1 To 16
      cle(fois) = 0
   Next fois
   
   champ1 = Key
   lngchamp1 = Len(champ1)
   
   For fois = 1 To lngchamp1
      cle(fois) = Asc(Mid(champ1, fois, 1))
   Next fois
   
   champ1 = Plaintext
   lngchamp1 = Len(champ1)
   For fois = 1 To lngchamp1
      C = Asc(Mid(champ1, fois, 1))
      
      Assemble128
      
      cfc = (((inter / 256) * 256) - (inter Mod 256)) / 256
      cfd = inter Mod 256
      
      For compte = 1 To 16
         cle(compte) = cle(compte) Xor C
      Next compte
      
      C = C Xor (cfc Xor cfd)
      
      d = (((C / 16) * 16) - (C Mod 16)) / 16
      e = C Mod 16
      
      sData = sData & Chr$(&H61 + d)
      sData = sData & Chr$(&H61 + e)
   Next fois

   Encrypt128 = sData
End Function

Public Function Decrypt128(ByVal Text As String, ByVal Key As String) As String
   Dim sData As String
   Dim fois, champ1, lngchamp1, cfc, cfd, compte, d, e
   si = 0
   x1a2 = 0
   i = 0
   
   For fois = 1 To 16
      cle(fois) = 0
   Next fois
   
   champ1 = Key
   lngchamp1 = Len(champ1)
   
   For fois = 1 To lngchamp1
   cle(fois) = Asc(Mid(champ1, fois, 1))
   Next fois
   
   champ1 = Text
   lngchamp1 = Len(champ1)
   
   For fois = 1 To lngchamp1
      d = Asc(Mid(champ1, fois, 1))
      If (d - &H61) >= 0 Then
          d = d - &H61
          If (d >= 0) And (d <= 15) Then
              d = d * 16
          End If
      End If
      If (fois <> lngchamp1) Then
          fois = fois + 1
      End If
      e = Asc(Mid(champ1, fois, 1))
      If (e - &H61) >= 0 Then
          e = e - &H61
          If (e >= 0) And (e <= 15) Then
              C = d + e
          End If
      End If
      
      Assemble128
      
      cfc = (((inter / 256) * 256) - (inter Mod 256)) / 256
      cfd = inter Mod 256
      
      C = C Xor (cfc Xor cfd)
      
      For compte = 1 To 16
          cle(compte) = cle(compte) Xor C
      Next compte
      
      sData = sData & Chr$(C)
   Next fois
   Decrypt128 = sData
End Function

Private Sub Assemble80()
   x1a0(0) = ((cle(1) * 256) + cle(2)) Mod 65536
   code80
   inter = res
   
   x1a0(1) = x1a0(0) Xor ((cle(3) * 256) + cle(4))
   code80
   inter = inter Xor res
       
   x1a0(2) = x1a0(1) Xor ((cle(5) * 256) + cle(6))
   code80
   inter = inter Xor res
   
   x1a0(3) = x1a0(2) Xor ((cle(7) * 256) + cle(8))
   code80
   inter = inter Xor res
   
   x1a0(4) = x1a0(3) Xor ((cle(9) * 256) + cle(10))
   code80
   inter = inter Xor res
   
   i = 0
End Sub

Private Sub code80()
   dx = (x1a2 + i) Mod 65536
   ax = x1a0(i)
   cx = &H15A
   bx = &H4E35
   
   tmp = ax
   ax = si
   si = tmp
   
   tmp = ax
   ax = dx
   dx = tmp
   
   If (ax <> 0) Then
       ax = (ax * bx) Mod 65536
   End If
   
   tmp = ax
   ax = cx
   cx = tmp
   
   If (ax <> 0) Then
       ax = (ax * si) Mod 65536
       cx = (ax + cx) Mod 65536
   End If
   
   tmp = ax
   ax = si
   si = tmp
   ax = (ax * bx) Mod 65536
   dx = (cx + dx) Mod 65536
   
   ax = ax + 1
   
   x1a2 = dx
   x1a0(i) = ax
   
   res = ax Xor dx
   i = i + 1
End Sub

Private Function Encrypt80(ByVal Plaintext, ByRef Key) As String
   Dim Crooked As String
   Dim fois, champ1, lngchamp1, cfc, cfd, compte, d, e
   si = 0
   x1a2 = 0
   i = 0
   
   For fois = 1 To 10
      cle(fois) = 0
   Next fois
   
   champ1 = Key
   lngchamp1 = Len(champ1)
   
   For fois = 1 To lngchamp1
      cle(fois) = Asc(Mid(champ1, fois, 1))
   Next fois
   
   champ1 = Plaintext
   lngchamp1 = Len(champ1)
   For fois = 1 To lngchamp1
      C = Asc(Mid(champ1, fois, 1))
      
      Assemble80
      
      cfc = (((inter / 256) * 256) - (inter Mod 256)) / 256
      cfd = inter Mod 256
      
      For compte = 1 To 10
          cle(compte) = cle(compte) Xor C
      Next compte
      
      C = C Xor (cfc Xor cfd)
      
      d = (((C / 16) * 16) - (C Mod 16)) / 16
      e = C Mod 16
      
      Crooked = Crooked + Chr$(&H61 + d)
      Crooked = Crooked + Chr$(&H61 + e)
   Next fois
   Encrypt80 = Crooked
End Function

Private Function Decrypt80(ByVal EncryptedText, ByRef Key) As String
   Dim Plaintext As String
   Dim fois, champ1, lngchamp1, cfc, cfd, compte, d, e
   si = 0
   x1a2 = 0
   i = 0
   
   For fois = 1 To 10
       cle(fois) = 0
   Next fois
   
   champ1 = Key
   lngchamp1 = Len(champ1)
   
   For fois = 1 To lngchamp1
       cle(fois) = Asc(Mid(champ1, fois, 1))
   Next fois
   
   champ1 = EncryptedText
   lngchamp1 = Len(champ1)
   
   For fois = 1 To lngchamp1
      d = Asc(Mid(champ1, fois, 1))
      If (d - &H61) >= 0 Then
         d = d - &H61
         If (d >= 0) And (d <= 15) Then
            d = d * 16
         End If
      End If
      If (fois <> lngchamp1) Then
         fois = fois + 1
      End If
      e = Asc(Mid(champ1, fois, 1))
      If (e - &H61) >= 0 Then
         e = e - &H61
         If (e >= 0) And (e <= 15) Then
            C = d + e
         End If
      End If
      
      Assemble80
      
      cfc = (((inter / 256) * 256) - (inter Mod 256)) / 256
      cfd = inter Mod 256
      
      C = C Xor (cfc Xor cfd)
      
      For compte = 1 To 10
          cle(compte) = cle(compte) Xor C
      Next compte
      
      Plaintext = Plaintext + Chr$(C)
   Next fois
   Decrypt80 = Plaintext
End Function

Public Function Encrypt(TextIn As String, Key As String) As String
   Dim sKey As String
   
   On Error GoTo TooLong:
   If Len(Key) < 11 Then
      sKey = Key & Space$(10 - Len(Key))
      Encrypt = Encrypt80(TextIn, sKey)
   Else
      sKey = Key & Space$(16 - Len(Key))
      Encrypt = Encrypt128(TextIn, sKey)
   End If
   Exit Function
TooLong:
   MsgBox "Das Passwort darf maximal nur 16 Zeichen lang sein."
End Function

Public Function Decrypt(TextIn As String, Key As String) As String
   Dim sKey As String
   
   On Error GoTo TooLong:
   If Len(Key) < 11 Then
      sKey = Key & Space$(10 - Len(Key))
      Decrypt = Decrypt80(TextIn, sKey)
   Else
      sKey = Key & Space$(16 - Len(Key))
      Decrypt = Decrypt128(TextIn, sKey)
   End If
   Exit Function
TooLong:
   MsgBox "Das Passwort darf maximal nur 16 Zeichen lang sein."
End Function

Public Function CreateKey(ByVal nLen As Integer) As String
  ' zufälligen Key aus Großbuchstaben und
  ' Zahlen ermitteln

  Dim i As Integer
  Dim nValue As Integer
  Dim sKey As String
  
  For i = 1 To nLen
    Randomize -Timer
    nValue = Int(1000 * Rnd)
    If (nValue Mod 10 = 0) Or (nValue Mod 5 = 0) Or (nValue Mod 3 = 0) Then
      ' Zahl
      Randomize -Timer
      Do
        nValue = Int(8 * Rnd + 1)
      Loop Until nValue >= 1 And nValue <= 9
      sKey = sKey & Chr$(48 + nValue)
    
    Else
      ' Buchstabe
      Randomize -Timer
      Do
        nValue = Int(26 * Rnd)
      Loop Until nValue >= 1 And nValue <= 26 And nValue <> 9 And nValue <> 15
      sKey = sKey & Chr$(97 + nValue)
    End If
  Next i
  
  CreateKey = sKey
End Function

Könnt ihr daraus eventuell erkennen, wonach ich googlen muss? Oder gibt es solch eine Funktion in Java? Mein Problem ist das ich nicht weiß, wie genau man diese Verschlüsselungsmethode nennt und ich deswegen auch schlecht googlen kann. Zudem verstehe ich nicht sehr viel von VB, sodass ein "umschreiben" in Java für mich fast nicht in Frage kommt. Mein Versuch in Java sieht bisher so aus:

Java:
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;


public class VerschluesselungsTest {
   
    public static void main(String args[]) throws Exception{
        String cryptedData, clearTextKey;
        cryptedData = "Eine Reihe von Daten in verschlüsseltem Format";
        clearTextKey = "Bestimmter Schlüssel, der 16 Zeichen lang ist";
        Key key = new SecretKeySpec(clearTextKey.getBytes(), "DES");
        Cipher c = Cipher.getInstance("DES");
        c.init(Cipher.DECRYPT_MODE, key);
        System.out.println(new String(c.doFinal(cryptedData.getBytes()), "UTF8"));
    }

}
Doch ich bekomme leider immer nur diese Fehlermeldung:
Exception in thread "main" java.security.InvalidKeyException: Invalid key length: 16 bytes


Ich hoffe ihr könnt mir helfen.

MFG
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Verschlüsselung in PHP -> Entschlüsselung in Java Allgemeine Java-Themen 2
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
T AES-Verschlüsselung mit eigenem 256 Bit Schlüssel Allgemeine Java-Themen 12
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
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
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
I Entschlüsselung Allgemeine Java-Themen 3
C Entschlüsselung schlägt fehl Allgemeine Java-Themen 1
E AES Entschlüsselung teilweise fehlerhaft Allgemeine Java-Themen 5
D Java AES Ver- und Entschlüsselung Allgemeine Java-Themen 9
B Rot13 Entschlüsselung Allgemeine Java-Themen 7
V DES-Ver-/Entschlüsselung Allgemeine Java-Themen 9
T Passwortabfrage mit Entschlüsselung Allgemeine Java-Themen 4
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1

Ähnliche Java Themen

Neue Themen


Oben