using System.Security.Cryptography;
private static readonly byte[] _salt = new byte[] { 56, 112, 43, 68, 1, 200, 213, 185, 83, 62, 158, 201 };
public static string GenerateInstallKey()
using (MD5 md5 = MD5.Create())
var dayOfYear = md5.ComputeHash(BitConverter.GetBytes(DateTime.UtcNow.DayOfYear));
var year = md5.ComputeHash(BitConverter.GetBytes(DateTime.UtcNow.Year));
return BitConverter.ToString(md5.ComputeHash(md5.ComputeHash(dayOfYear.Concat(year).Concat(_salt).ToArray()))).Replace("-", string.Empty).Substring(0, 16);
public static void Main()
Console.WriteLine(new string(GenerateInstallKey().Select(T => T + 1).Select(T => (char)T).ToArray()).ToLower());