Over a year ago, I've created a small form-based software.
It's purpose, as the title states, is random string generation.
It has options to combine numerical, small caps, large caps and special characters within the ASCII character set (94 in total). It will have support for UTF-8 soon (and will be marked as optional/experimental, because some websites do not allow anything but ASCII for passwords).
It uses RNGCryptoServiceProvider
class and it's methods (GetBytes()
and
ToString()
) to produce an output.
If we select all options (entire ASCII), we have 94 characters. We specify we want our output to be 64 characters long.
Our strength in bits is: 94^64 or log (base 2, 94) * 64 = 419
EDIT: Example: 4Ed(R{MQ_U9pQ#?9k'V2p1bpW+UrEBkebif9w'Qsp>n7i~PF,]DCdV18sqilN(ou
Question 1: Is it safe to use this output as a strong password?
Question 2: Is there anything else I should implement to enhance security?
Programming language: C#
IDE: SharpDevelop 4.4
Framework: .NET 4.5
char
,b
are bytes from RNGCryptoService.... { result.Append(chars[b % (chars.Length)]); } tbOutput.Text = Convert.ToString(result);