У меня есть алгоритм для шифрования и дешифрования данных с использованием симметричного шифрования.В любом случае, когда я собираюсь расшифровать, у меня есть:
CryptoStream cs = new CryptoStream(ms, cryptoTransform, CryptoStreamMode.Read);
Я должен прочитать данные из CS CryptoStream и поместить эти данные в массив байтов.Таким образом, один метод может быть:
System.Collections.Generic.List<byte> myListOfBytes = new System.Collections.Generic.List<byte>();
while (true)
{
int nextByte = cs.ReadByte();
if (nextByte == -1) break;
myListOfBytes.Add((Byte)nextByte);
}
return myListOfBytes.ToArray();
другой метод может быть:
ArrayList chuncks = new ArrayList();
byte[] tempContainer = new byte[1048576];
int tempBytes = 0;
while (tempBytes < 1048576)
{
tempBytes = cs.Read(tempContainer, 0, tempContainer.Length);
//tempBytes is the number of bytes read from cs stream. those bytes are placed
// on the tempContainer array
chuncks.Add(tempContainer);
}
// later do a for each loop on chunks and add those bytes
Я не могу заранее знать длину потока cs:
или, возможно, я должен реализовать свой класс стека.Я буду зашифровывать много информации, поэтому эффективное использование этого кода сэкономит много времени