這裏是我的方法:產生爲什麼RNGCryptoServiceProvider值始終以等號結束?
public static string GenerateRandomString(int bytes)
{
var rng = new RNGCryptoServiceProvider();
var randomBytes = new byte[bytes];
rng.GetBytes(randomBytes);
return Convert.ToBase64String(randomBytes);
}
每個值:
即:
Qcr6OgNxkGzVebNl00Dtk7yCaz64owUx7pKEhl1Ogn4=
IGFLQB0OrReDB3P6nuZgqZIkTwTtch9Fk3Rx/DL4CgI=
UAJwLwIPYEJ9SzMAK/EMiUJ/DHhmfy6UVMM5MU6Dcpg=
始終以 「=」 結束 - 這是爲什麼?
我發送這個密碼重置電子郵件的隨機字符串,並與微軟Outlook有問題不在鏈接的結尾=。有沒有人知道一個解決方法,而不是簡單地切斷字符串的最後一個字符?
記住 - RNGCryptoServiceProvider沒有返回字符串;它是一系列字節 - '='是base 64編碼的一個方面;運行它通過維基百科http://en.wikipedia.org/wiki/Base64 – 2012-02-03 16:49:56