using System.Security.Cryptography;
public static void Main()
var passwords= new string [100];
for(var i=0; i< 100; i++){
var random = new Random();
passwords[i] = RandomString(8, random);
for(var i=0; i< 100; i++){
Console.WriteLine(passwords[i]+ "; " + Encode(passwords[i]));
public static string RandomString(int length, Random random)
const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#%&";
return new string(Enumerable.Repeat(chars, length)
.Select(s => s[random.Next(s.Length)]).ToArray());
public static string Encode(string plainPassword)
byte[] hash = ComputeHash(plainPassword);
return ToStringAsHexa(hash);
private static byte[] ComputeHash(string plainPassword)
byte[] unicodeBytes = Encoding.Unicode.GetBytes(plainPassword);
return new SHA256Managed().ComputeHash(unicodeBytes);
private static string ToStringAsHexa(byte[] bytes)
StringBuilder result = new StringBuilder();
foreach (byte b in bytes)
result.AppendFormat("{0:x2}", b);
return result.ToString();