Verschlüsseln von Daten

14/04/2008 - 09:02 von Nobert Lutz | Report spam
Hallo,

bei 8Stellen habe ich kein Problem, ich will den Schlüssel auf 30 Stellen
verlàngern und dabei erzeugt mein Code Fehler.
Was muss ich àndern?

Hier der Code:

Public Function Encrypt(ByVal strText As String, Optional ByVal sZusVersch
As String = "") As Byte()

Dim byKey() As Byte = {}

'Initialisierungsvektor



Dim IV() As Byte = {&HA1, &HBF, &H4D, &H8, &H90, &HE7, &H7E, &H14}

Dim sString As String = prv_key & sZusVersch

sString = sString.Substring(0, 29)

Try

byKey = System.Text.Encoding.UTF8.GetBytes(prv_key.Substring(0, 8))

Dim des As New DESCryptoServiceProvider

Dim inputByteArray() As Byte = System.Text.Encoding.UTF8.GetBytes(strText)

Dim ms As New MemoryStream

Dim cs As New CryptoStream(ms, des.CreateEncryptor(byKey, IV),
CryptoStreamMode.Write)

cs.Write(inputByteArray, 0, inputByteArray.Length)

cs.FlushFinalBlock()

Return ms.ToArray()

Catch ex As Exception

End Try

End Function

Norbert
 

Lesen sie die antworten

#1 Elmar Boye
15/04/2008 - 11:58 | Warnen spam
Hallo Norbert,

Nobert Lutz schrieb:

bei 8Stellen habe ich kein Problem, ich will den Schlüssel auf 30 Stellen
verlàngern und dabei erzeugt mein Code Fehler.



Dein Code ist leider etwas undurchsichtig...

Public Function Encrypt(ByVal strText As String, Optional ByVal sZusVersch
As String = "") As Byte()
{...]
Dim sString As String = prv_key & sZusVersch

sString = sString.Substring(0, 29)



Was machst Du damit? ...

Try

byKey = System.Text.Encoding.UTF8.GetBytes(prv_key.Substring(0, 8))



... soll der anstatt prv_key verwendet werden?

Grundsàtzlich gilt für den DES Crypto Provider dass er nur 8 Bytes
als Schlüssel akzeptiert.

Um eine làngere Zeichenfolge als Schlüssel zu verwenden, wàre eine
Möglichkeit die Zeichenfolge zunàchst mittels SHA256 zu kodieren
und das Ergebnis als Schlüssel einzusetzen.

Gruß Elmar

Ähnliche fragen