मेरे पास सममित एन्क्रिप्शन का उपयोग करके डेटा एन्क्रिप्ट करने और डिक्रिप्ट करने के लिए एक एल्गोरिदम है। वैसे भी जब मैं के बारे में डिक्रिप्ट करने के लिए कर रहा हूँ, मेरे पास है:स्ट्रीम से डेटा पढ़ने का सबसे प्रभावी तरीका
CryptoStream cs = new CryptoStream(ms, cryptoTransform, CryptoStreamMode.Read);
मैं सीएस 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
मैं पहले से धारा की लंबाई नहीं पता कर सकते सीएस:
या शायद मैं चाहिए मेरी ढेर वर्ग को लागू करें। मैं जानकारी का एक बहुत कुछ को एनक्रिप्ट किया जाएगा इसलिए इस कोड को कुशल बहुत समय की बचत होगी
अच्छा था कि मैं वास्तव में क्या जरूरत धन्यवाद की आवश्यकता होगी! –
त्वरित प्रश्न ... आपने सब कुछ उपयोग कथन के अंदर क्यों रखा? उपयोग कथन का मतलब क्या है? –
@ टोनो नाम, यह सुनिश्चित करता है कि स्ट्रीम के रूप में पहचानने योग्य संसाधनों की निपटान विधि को किसी भी अप्रबंधित संसाधनों को मुक्त करने के लिए हमेशा बुलाया जाता है जिसे वे अपवाद के मामले में भी पकड़ सकते हैं और इस प्रकार आपके कोड में मेमोरी लीक से बच सकते हैं। यह एक मौलिक अवधारणा है जिसे मैं आपको एमएसडीएन पर पढ़ने के लिए आमंत्रित करता हूं: http://msdn.microsoft.com/en-us/library/yh598w02.aspx इसके अलावा आपको अपने 'CryptoStream' को एक उपयोग कथन में लपेटना चाहिए। –