C# Random StringGenerate random strings using the GetRandomFileName method from the System.IO namespace.
dot net perls
Random strings are sometimes needed. We generate them with a built-in method on the Path type. This method, found in System.IO, generates random strings with high quality randomness. It is easy to use.
First, this problem can be approached in many ways, but the approaches that use the Random class have weaknesses. These are primarily related to edge cases and repeating numbers due to the time-based seed value of the Random class.
Thus The Path.GetRandomFileName method here is sometimes superior. It uses RNGCryptoServiceProvider for better randomness.
However It is limited to 11 random characters. This is sometimes not sufficient.
GetRandomString This method invoked the Path.GetRandomFileName method from the System.IO namespace.
Note The string contains one period which is not random. We remove the period in the Replace call.
C# program that generates random strings
/// Random string generators.
static class RandomUtil
/// Get random string of 11 characters.
/// <returns>Random string.</returns>
public static string GetRandomString
string path = Path.GetRandomFileName();
path = path.Replace("."
); // Remove period.
static void Main()
// Test the random string method.
The RNGCryptoServiceProvider class that the GetRandomFileName method is implemented with is cryptographic-strength. The GetBytes method is invoked internally and it returns random bytes.
And These random bytes are then used with bitwise ANDs to fill the result value.
So The characters in the strings were filled from the RNGCryptoServiceProvider class in the base class library.
We obtained a random string. This method has a limitation on the length of the result, which means you may need to call it more than once or truncate the result. The quality of the random strings is higher than in other methods.
And It requires less code and may lead to fewer bugs. This is always an advantage.
© 2007-2021 sam allen. send bug reports to email@example.com.