Dekryptering av 3DES vb.net (c# går bra med)
Visa signatur
Visa signatur
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
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...
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
Copyright © 1999–2024 Geeks AB. Allt innehåll tillhör Geeks AB.
Citering är tillåten om källan anges.