Hi @ all

I have a Problem to Decrypt my crypted files :
e.g. if I encrypt this text:
CODE
BÖAR BÖLASDJASPDJAPSDJPASDJPASD
asdj
...
And Decrypt it:
CODE
AB0_í-M3‚Sþr¯WPJAPSDJPASDJPASD
asdj
...
The first chars are wrong!
My Code to Encrypt and Decrypt :
Encrypt:CODE
Public Shared Sub EncryptFile(ByVal sSource As String, ByVal sTarget As String, Optional ByVal BufferSize As Long = 4096)
Dim ErrorHappened As Boolean = False
Dim OldFileStream As FileStream
Dim NewFileStream As FileStream
Dim CrypStream As CryptoStream
Try
Dim key As String = "mypw"
Dim skey() As Byte = SecurityFunctions.GetPasswordHashInBytes(key)
OldFileStream = New FileStream(sSource, FileMode.Open)
NewFileStream = New FileStream(sTarget, FileMode.Create)
Dim RijndaelManaged As New RijndaelManaged
RijndaelManaged.Key = skey
RijndaelManaged.GenerateIV()
CrypStream = New CryptoStream(NewFileStream, RijndaelManaged.CreateEncryptor(skey, RijndaelManaged.IV), CryptoStreamMode.Write)
Dim Data(BufferSize) As Byte
Dim Buffer As Long
Dim BufferCount As Long
Dim FileLen As Long = OldFileStream.Length
Do
If BufferCount >= FileLen - BufferSize Then
ReDim Data(FileLen - BufferCount)
Buffer = OldFileStream.Read(Data, 0, FileLen - BufferCount)
CrypStream.Write(Data, 0, Buffer)
Exit Do
End If
Buffer = OldFileStream.Read(Data, 0, BufferSize)
CrypStream.Write(Data, 0, BufferSize)
BufferCount += Buffer
Loop
CrypStream.Close()
Catch ex As Exception
MsgBox("Error!" & vbCrLf & ex.Message)
ErrorHappened = True
Finally
NewFileStream.Close()
OldFileStream.Close()
End Try
If ErrorHappened Then
My.Computer.FileSystem.DeleteFile(sTarget)
End If
End Sub
Decrypt:CODE
Public Shared Sub DecryptFile(ByVal sSource As String, ByVal sTarget As String, Optional ByVal BufferSize As Long = 4096)
Dim ErrorHappened As Boolean = False
Dim OldFileStream As FileStream
Dim NewFileStream As FileStream
Dim CrypStream As CryptoStream
Try
Dim key As String = "mypw"
Dim skey() As Byte = SecurityFunctions.GetPasswordHashInBytes(key)
OldFileStream = New FileStream(sSource, FileMode.Open)
NewFileStream = New FileStream(sTarget, FileMode.Create)
Dim RijndaelManaged As New RijndaelManaged()
RijndaelManaged.Key = skey
RijndaelManaged.GenerateIV()
CrypStream = New CryptoStream(OldFileStream, RijndaelManaged.CreateDecryptor(skey, RijndaelManaged.IV), CryptoStreamMode.Read)
Dim Data(BufferSize) As Byte
Dim Buffer As Long
Dim BufferCount As Long
Dim FileLen As Long = OldFileStream.Length
Do
If BufferCount >= FileLen - BufferSize Then
ReDim Data(FileLen - BufferCount)
Buffer = CrypStream.Read(Data, 0, FileLen - BufferCount)
NewFileStream.Write(Data, 0, Buffer)
Exit Do
End If
Buffer = CrypStream.Read(Data, 0, BufferSize)
NewFileStream.Write(Data, 0, BufferSize)
BufferCount += Buffer
Loop
CrypStream.Close()
Catch ex As Exception
MsgBox("Error!" & vbCrLf & ex.Message)
ErrorHappened = True
Finally
NewFileStream.Close()
OldFileStream.Close()
End Try
If ErrorHappened Then
My.Computer.FileSystem.DeleteFile(sTarget)
End If
End Sub
Someone an Idea ?
Thanks
This post has been edited by chrixko: 28 May, 2009 - 08:36 AM