2009-07-20 3 views
0

Я пытаюсь расшифровать зашифрованный XML-файл и поместить его в поток, а затем загрузить его в набор данных. Я могу это сделать, если я расшифрую файл и напишу его как файл. Затем выполните метод Dataset.ReadXML. Тем не менее, поэтому я не нарушаю цель шифрования, которую я хотел бы оставить в памяти. Я вижу, что .ReadXML действительно принимает параметр system.io.stream в качестве параметра, но я просто не уверен, что лучший способ его построить из метода дешифрования.Загрузите зашифрованный XML-файл в набор данных

Вот код для загрузки файла XML в набор данных

 'ds is the dataset 
     ds.ReadXmlSchema(m_TheSchemaPath) 
     ds.ReadXml(m_TheXMLDatasetPath, XmlReadMode.IgnoreSchema) 

Вот код для расшифровки файла:

Sub DecryptFile(ByVal sInputFilename As String, _ 
    ByVal sOutputFilename As String, _ 
    ByVal sKey As String) 

    Dim DES As New DESCryptoServiceProvider() 
    'A 64-bit key and an IV are required for this provider. 
    'Set the secret key for the DES algorithm. 
    DES.Key() = ASCIIEncoding.ASCII.GetBytes(sKey) 
    'Set the initialization vector. 
    DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey) 

    'Create the file stream to read the encrypted file back. 
    Dim fsread As New FileStream(sInputFilename, FileMode.Open, FileAccess.Read) 
    'Create the DES decryptor from the DES instance. 
    Dim desdecrypt As ICryptoTransform = DES.CreateDecryptor() 
    'Create the crypto stream set to read and to do a DES decryption transform on incoming bytes. 
    Dim cryptostreamDecr As New CryptoStream(fsread, desdecrypt, CryptoStreamMode.Read) 
    'Print out the contents of the decrypted file. 
    Dim fsDecrypted As New StreamWriter(sOutputFilename) 
    fsDecrypted.Write(New StreamReader(cryptostreamDecr).ReadToEnd) 
    fsDecrypted.Flush() 
    fsDecrypted.Close() 
End Sub 

ответ

1

Просто использовать CryptoStream для загрузки DataSet.

+0

Ого, это было слишком легко. ;-) –

+1

Нет такой вещи, как «слишком легко» с программированием, если она работает. «Слишком легко, и поэтому он не работает» - это совсем другое. –

Смежные вопросы