Как зашифровать большой файл XML

1

Я создаю один файл XMl (Экспорт таблицы из базы данных) в One Pc, и отправив этот файл на другой компьютер, а не пользователь Importdata из этого XML файла, мне нужно зашифровать этот файл из-за причины безопасности, обычно я использую эту функцию,

 public static string Encrypt(string strText, string strEncrKey)
    {
        //Initialization Vector IV also must be 8 character long.
        byte[] IV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
        try
        {
            // Declare a UTF8Encoding object so we may use the GetByte
            // method to transform the plainText into a Byte array.
            byte[] bykey = System.Text.Encoding.UTF8.GetBytes(strEncrKey);
            byte[] InputByteArray = System.Text.Encoding.UTF8.GetBytes(strText);
            System.Security.Cryptography.DESCryptoServiceProvider des = new System.Security.Cryptography.DESCryptoServiceProvider(); // Create a new DES service provider
            // All cryptographic functions need a stream to output the
            // encrypted information. Here we declare a memory stream
            // for this purpose.
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            System.Security.Cryptography.CryptoStream cs = new System.Security.Cryptography.CryptoStream(ms, des.CreateEncryptor(bykey, IV), System.Security.Cryptography.CryptoStreamMode.Write);
            // Write the encrypted information to the stream. Flush the information
            // when done to ensure everything is out of the buffer.
            cs.Write(InputByteArray, 0, InputByteArray.Length);
            cs.FlushFinalBlock();
            //Return Byte array into Base64 String Format
            return Convert.ToBase64String(ms.ToArray());
        }
        catch (Exception ex)
        {
            //Return ex.Message

            clsLogs.LogError(ex.Message + "|" + ex.TargetSite.ToString() + "|" + ex.StackTrace);
            return clsGlobleFunction.errorstring;
        }
    }

его работа отлично, но это создает проблему, когда размер файла очень большой, например, в моем Xml файле отображаются данные ниже,

<NewDataSet>
  <Table>
    <Batch_M_id>-1</Batch_M_id>
    <RSN>000061483</RSN>
    <Parent_RSN />
    <Pkg_Location>1</Pkg_Location>
    <CompanyId>1</CompanyId>
  </Table>
 <Table>
   <Batch_M_id>-1</Batch_M_id>
   <RSN>000062321</RSN>
   <Parent_RSN />
   <Pkg_Location>1</Pkg_Location>
   <CompanyId>1</CompanyId>
</Table>
</NewDataSet> 

Мне нужно экспортировать RSL-номер 4lacs, как указано выше, Table Tag повторяет время 4lacs, можете ли вы предложить мне, какой тип шифрования лучше для этой производительности?

Теги:
encryption

1 ответ

1

Вообще говоря, XML раздувается. По дизайну. Конструктивное соображение заключалось в том, что раздувание было в порядке, поскольку компромисс был удобочитаемым, поскольку раздувание можно легко упаковать. Поэтому, если вы хотите куда-то перенести файл XML, упакуйте его. У.NET есть Zip-классы, любой другой алгоритм, вероятно, будет хорошо. Как только ваш файл будет составлять часть текущего размера, любая другая операция будет намного проще.

Если размер файла является проблемой, не кодируйте полученные результирующие байты. У вас есть поток байтов. Напишите его в файл. Не сначала конвертируйте его в текст.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню