[VisualBasic] Rijandael Verschlüsselung 32 Byte mit ECB 16 Byte

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Dark|pUM4, 3. Oktober 2007 .

  1. 3. Oktober 2007
    Rijandael Verschlüsselung 32 Byte mit ECB 16 Byte

    Hallo Leute,
    ich habe folgende Angaben:

    Als Verschlüsselungs-Algorithmus, wird AES/Rijndael mit einem 32Byte/256Bit-Schlüssel und einem
    Initial-Vektor von Null verwendet. Also Block-Moduls wird ECB (=Electronic Code Book mode)
    verwendet, bei dem jeder 16Byte-Block für sich verschlüsselt uns aneinander gehängt wird.
    Das Passwort des entsprechenden Web-Benutzers dient dabei als Schlüssel und muss immer bis zur Länge
    von 32Byte mit binären Nullen aufgefüllt werden.
    Für die AES-Verschlüsselung ist es außerdem nötig, den zu verschlüsselnden Text jeweils auf den
    nächsten 16Byte-Block mit Nullen aufzufüllen.

    Weiters muss der Alarmstring für die Übertragung in Hex-Code umgewandelt werden!

    Nebenangaben zum Programm:
    Das Programm dient dazu einen bestimmten String auf einen Server zu übertragen. Der Server alarmiert, falls der übertragene String korrekt ist, einen SMS Gateway.

    Ich habe dass mit folgendem Code gelöst, allerdings dürfte irgendetwas nicht wirklich funktionieren, da auf der anderen Seite nur wirre Buchstabenkombinationen ankommen.

    Code:
    'Der zu Verschlüsselnde Alarmstring wird erstellt
     zuVerschlStr = "HIER WIRD DER SICHERHEITSSTRING ERZEUGT"
     'Beginn der Verschlüsselung
     Dim textInByte() As Byte = System.Text.Encoding.UTF8.GetBytes(Me.zuVerschlStr)
    
     For i = 0 To textInByte.Length - 1
     tempByte(z) = textInByte(i)
     If (z = 15) Then
     verschlStr = verschlStr + Me.Verschlüsseln(tempByte)
     z = -1
     End If
     z += 1
     Next
     If z < 15 And z > 0 Then
     For i = z To 15
     tempByte(z) = 0
     z += 1
     Next
     verschlStr = verschlStr + Me.Verschlüsseln(tempByte)
     End If
    
     'Der Verschlüsselte Text wird in den Hexydezimal Code umgewandelt
     Dim sd As StringBuilder
     sd = New StringBuilder
     For i = 0 To verschlStr.Length - 1
     sd.Append(Convert.ToInt32(verschlStr(i)).ToString("x"))
     Next
    
    
    'Hier folgt dann der weitere CODE
    
    'Und noch die Funktion die zur Verschlüsselung des Strings dient
    
     Public Function Verschlüsseln(ByVal text() As Byte)
     Dim rd As New RijndaelManaged
    
     Dim md5 As New MD5CryptoServiceProvider
     Dim pwd() As Byte
     Dim tempByte(31) As Byte
    
    
     pwd = Encoding.UTF8.GetBytes(Me.SMSPassword)
     For i As Integer = 0 To pwd.Length - 1
     tempByte(i) = pwd(i)
     Next
     Dim key() As Byte
     key = md5.ComputeHash(tempByte)
    
    
     md5.Clear()
     rd.Key = key
     rd.GenerateIV()
    
     Dim iv() As Byte = rd.IV
     Dim ms As New MemoryStream
    
     ms.Write(iv, 0, iv.Length)
    
     Dim cs As New CryptoStream(ms, rd.CreateEncryptor, CryptoStreamMode.Write)
     'Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes(Me.zuVerschlStr)
    
    
     cs.Write(text, 0, text.Length)
     cs.FlushFinalBlock()
    
     Dim encdata() As Byte = ms.ToArray()
     cs.Close()
     rd.Clear()
     Return (Convert.ToBase64String(encdata))
    
    Fällt euch da irgendetwas auf?
    BW ist natürlich für jeden sinnvollen Hinweis drinnen
     
  2. 10. Oktober 2007
    AW: Rijandael Verschlüsselung 32 Byte mit ECB 16 Byte

    Kennt sich da niemand aus von euch????
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.