Вопрос : Архив C# Рединг в байты, после этого преобразовывая его к шнуру, после этого преобразовывая его назад к байтам

Hi, я кажется, что имею проблему когда читать архив в байты, тогда преобразовывать его к шнуру, тогда преобразовывать его назад к Кодему bytes.

The является следующим: буйволовая кожа = null

byte [];
FileStream fs = новое FileStream (System.IO.Path.GetTempPath () + «/myprogram.exe», FileMode.Open, FileAccess.Read); br
BinaryReader = новое BinaryReader (fs); numBytes
long = новое FileInfo (System.IO.Path.GetTempPath () +» /myprogram.exe "). Длина;
buff = br.ReadBytes (numBytes); зашифрование

System.Text.ASCIIEncoding = новое System.Text.ASCIIEncoding ();

string buffasstring = encoding.GetString (буйволовая кожа);
byte [] prgbk2bytes= encoding.GetBytes (buffasstring);


--
Why будет байты prgbk2bytes по-разному к байтам программы orignal? Как могу я получить первоначально запрограммируйте байты задние после преобразовывать его к шнуру.

Many thanks

class=

Ответ : Архив C# Рединг в байты, после этого преобразовывая его к шнуру, после этого преобразовывая его назад к байтам


ray_code, I судимое ваше Кодий на моем архиве .exe. По мере того как вы сказали байты перед и после отличают.

Причина почему они отличают:

Под линия от msdn (понимая зашифрований: http://msdn.microsoft.com/en-us/library/ms404377.aspx)

«•Если ваше применение имеет содержанием, то не будет только ASCII и не шифрует его с ASCIIEncoding, каждый характер non-ASCII шифрует как вопросительный знак ("? "). Если применение после этого расшифровывает эти данные, то информация потерянный.»

Obvioursly данные по байта от архива .exe будет «не ASCII» и информация потерянный.

Будет разрешением для этого:

Под линия от msdn (типа зашифрования: http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx)

«Если ваше применение должно зашифровать произвольные бинарные данные в текст, то оно должно использовать протокол как uuencode, который снабжен методами как Convert.ToBase64CharArray.»

Очевидно данными по байта от архива .exe будут произвольные бинарные данные и вы должны рассматривать using зашифрование Base64 вместо как показано в Кодем ниже:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
буйволовая кожа = null байта [];
FileStream fs = новое FileStream (System.IO.Path.GetTempPath () + «/myprogram.exe», FileMode.Open, FileAccess.Read);
Br BinaryReader = новое BinaryReader (fs);
длинние numBytes = новое FileInfo (System.IO.Path.GetTempPath () + «/myprogram.exe»). Длина;
буйволовая кожа = br.ReadBytes (numBytes (int));

//System.Text.ASCIIEncoding шифруя = новое System.Text.ASCIIEncoding ();

шнур buffasstring = Convert.ToBase64String (буйволовая кожа);
байт [] prgbk2bytes= Convert.FromBase64String (buffasstring);
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us