Я пытаюсь использовать симметричное шифрование для шифрования некоторых данных и хранить ключ, необходимый для дешифрования с данными, в MemoryStream.(Хотя я знаю, что одно это действительно глупо с точки зрения безопасности, я собираюсь использовать RSA для шифрования симметричного ключа. Однако сейчас я пытаюсь просто заставить эту часть работать.)
Я использую библиотеку FileHelpers для анализа данных для моего разделителя (точка с запятой, так как я не верю, что у меня когда-либо будет точка с запятой).К сожалению, в моей функции расшифровки, когда она анализируется, она возвращает только одну запись.И, если я покажу всю строку зашифрованных данных, созданных в конце этой функции, она не будет использовать несколько записей.
Мне интересно, если при создании нового криптопотока он по умолчаниюв начало потока памяти, поэтому, когда я записываю свои зашифрованные данные, он перезаписывает данные, которые я только что записал, в поток памяти.Как вы думаете, это правильно?
Спасибо за вашу помощь!
Private Function Encrypt(ByVal data As String) As String
Dim utf8 As New UTF8Encoding
' Convert string data to byte array
Dim inBytes() As Byte = utf8.GetBytes(data)
' Create memory stream for storing the data we've manipulated
Dim ms As New MemoryStream()
Dim aes As New RijndaelManaged()
aes.KeySize = 256
Dim cs As New CryptoStream(ms, aes.CreateEncryptor(), CryptoStreamMode.Write)
' Write key to beginning of memory stream
ms.Write(aes.Key, 0, aes.Key.Length)
' Add semicolon delimiter to memory stream
ms.Write(utf8.GetBytes(";"), 0, utf8.GetBytes(";").Length)
' Write IV to memory stream
ms.Write(aes.IV, 0, aes.IV.Length)
' Write semicolon delimiter to memory stream
ms.Write(utf8.GetBytes(";"), 0, utf8.GetBytes(";").Length)
' Ensure that the data we've just written is in the memory stream, before
' we add the encrypted data
ms.Flush()
' Write the encrypted data
cs.Write(inBytes, 0, inBytes.Length) ' encrypt
cs.FlushFinalBlock()
' Return encrypted data as string
Return Convert.ToBase64String(ms.GetBuffer(), 0, ms.Length)
End Function