Premiär! Fyndchans i SweClockers Månadens Drop

Dekryptering av 3DES vb.net (c# går bra med)

Permalänk
Medlem

Dekryptering av 3DES vb.net (c# går bra med)

Nu har jag suttit och vridit och vänt på det här fram och tillbaka hela dagen men får inte till det. Den nuvarande koden postar jag nedanför men den kan vara helt galen för nu snurrar det bra i huvudet. Problemet jag har är på raden myCryptStream.Close där VS kastar ur sig felmeddelandet "Felaktig data". Om någon har en idé på vad det kan vara så blir jag glad.

Public Function Decrypt(ByVal value As String) As String Dim myCryptProvider As New TripleDESCryptoServiceProvider() Dim myMemStream As New IO.MemoryStream Dim key As String = "************************" myCryptProvider.Key = ASCII.GetBytes(key) Dim myCryptStream As New CryptoStream(myMemStream, myCryptProvider.CreateDecryptor(), CryptoStreamMode.Write) Dim decrypteddata() As Byte = System.Convert.FromBase64String(value) myCryptStream.Write(decrypteddata, 0, decrypteddata.Length) myCryptStream.Close() Dim retString() As Byte = myMemStream.ToArray() Return UTF8.GetString(decrypteddata, 0, decrypteddata.Length) End Function

Visa signatur
Permalänk
Medlem

Hejsan!

Jag vet inte på rak arm vad som är fel, men har du kollat denna sida med exempel:

http://msdn2.microsoft.com/en-us/library/system.security.cryp...

Permalänk
Medlem

Den sidan var mycket bättre än den jag kollade på först som förövrigt verkar helt felaktig med CryptoStreamMode satt till write och annat suspekt.

Gjorde så här:

Public Function Decrypt(ByVal Data() As Byte, ByVal key As Byte(), ByVal iv As Byte()) As String Try Dim myCryptProvider As New TripleDESCryptoServiceProvider() Dim myMemStream As New MemoryStream(Data) Dim myCryptStream As New CryptoStream(myMemStream, myCryptProvider.CreateDecryptor(key, iv), CryptoStreamMode.Read) Dim decrypteddata(Data.Length) As Byte myCryptStream.Read(decrypteddata, 0, decrypteddata.Length) Return encoding.GetString(decrypteddata) Catch ex As CryptographicException MsgBox("Error: " & ex.Message) Return Nothing End Try End Function

Visa signatur