我想了解以下內容:爲什麼C#Convert.ToBase64String()給我88作爲一個長度,當我傳遞64個字節?
如果我聲明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);
Btw:拋出一個異常是一種可怕的方式來記錄一個簡單的值... – 2012-02-01 20:40:52
我不會親自使用RGN加密,密碼強大的RNG將會更慢 - 它需要更多的計算---並將光譜白色, – MethodMan 2012-02-01 20:44:37
看看這個StackOverFlow解釋爲什麼它不安全使用RGN http://stackoverflow.com/questions/4892588/rngcryptoserviceprovider-random-number-review – MethodMan 2012-02-01 20:46:58