मैं निम्नलिखित को समझने की कोशिश कर रहा हूं:सी # कन्वर्ट क्यों करें। ToBase64String() मुझे 88 बाइट्स में गुजरने पर मुझे लंबाई के रूप में 88 देता है?
यदि मैं सरणी लंबाई (बफर) के रूप में 64 बाइट्स घोषित कर रहा हूं। जब मैं बेस 64 स्ट्रिंग में कनवर्ट करता हूं, तो यह कहता है कि लंबाई 88 है। क्या लंबाई केवल 64 होनी चाहिए, क्योंकि मैं 64 बाइट्स में गुजर रहा हूं? मैं पूरी तरह से गलत समझ सकता हूं कि यह वास्तविक काम कैसे करता है। यदि हां, तो क्या आप कृपया समझा सकते हैं।
//Generate a cryptographic random number
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
// Create byte array
byte[] buffer = new byte[64];
// Get random bytes
rng.GetBytes(buffer);
// This line gives me 88 as a result.
// Shouldn't it give me 64 as declared above?
throw new Exception(Convert.ToBase64String(buffer).Length.ToString());
// Return a Base64 string representation of the random number
return Convert.ToBase64String(buffer);
बीटीडब्ल्यू: एक अपवाद फेंकना एक साधारण मूल्य लॉग करने का एक भयानक तरीका है ... –
मैं व्यक्तिगत रूप से आरजीएन एन्क्रिप्शन का उपयोग नहीं करता, एक क्रिप्टोग्राफिक रूप से मजबूत आरएनजी धीमा हो जाएगा --- इसमें अधिक गणना होती है --- और स्पेक्ट्रल सफेद, – MethodMan
इस StackOverFlow स्पष्टीकरण को देखें कि आरजीएन का उपयोग सुरक्षित क्यों नहीं है http://stackoverflow.com/questions/4892588/rngcryptoserviceprovider-random-number-review – MethodMan