using System.Security.Cryptography;
public static void Main()
Console.WriteLine($"{a}");
var x = ConvertToOtherBase("999", 10, 62);
Console.WriteLine($"{x}");
var w = ConvertToOtherBase("22", 10, 62);
Console.WriteLine($"{w}");
var timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
Console.WriteLine($"DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds(): {timestamp}");
var ts = ConvertToOtherBase(timestamp.ToString(), 10, 62);
Console.WriteLine($"{ts}");
var utc = DateTime.UtcNow;
var y = ConvertToOtherBase((utc.Year - 2020).ToString(), 10, 62);
var m = ConvertToOtherBase(utc.Month.ToString(), 10, 62);
var d = ConvertToOtherBase(utc.Day.ToString(), 10, 62);
var h = ConvertToOtherBase(utc.Hour.ToString(), 10, 62);
var M = ConvertToOtherBase(utc.Minute.ToString(), 10, 62);
var s = ConvertToOtherBase(utc.Second.ToString(), 10, 62);
var f = ConvertToOtherBase(utc.Millisecond.ToString(), 10, 62);
Console.WriteLine($"{y}{m}{d}{h}{M}{s}{f}");
var hardwareId = "098H52ST479QE053V2";
Console.WriteLine($"{hardwareId}");
var hilasts = hardwareId.Substring(hardwareId.Length - 6);
var hi = ConvertToOtherBase(hilasts, 16, 62);
Console.WriteLine($"{hi}");
var email = GetHash(SHA256.Create(), "l.bonini@intyexsystem.it");
Console.WriteLine($"{email}");
var emaillasts = email.Substring(email.Length - 6);
var e = ConvertToOtherBase(emaillasts, 16, 62);
Console.WriteLine($"{e}");
var pi = ConvertToOtherBase(posid.ToString(), 10, 62);
Console.WriteLine($"{pi}");
Console.WriteLine($"{y}{m}{d}{h}{M}{s}{f}-101-{hi}-{e}");
public static char ToChar(int value)
const string charMappingNumbers = "0123456789";
const string charMappingUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const string charMappingLowerCase = "abcdefghijklmnopqrstuvwxyz";
const string charMappingAll = charMappingNumbers + charMappingUpperCase + charMappingLowerCase;
return charMappingAll[value];
private static string ConvertToOtherBase(string toConvert, int fromBase, int toBase)
const string characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
foreach (char digit in toConvert.ToCharArray())
value = (value * fromBase) + characters.IndexOf(digit);
result = characters[(int)(value % toBase)] + result;
private static string GetHash(HashAlgorithm hashAlgorithm, string input)
byte[] data = hashAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(input));
var sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
sBuilder.Append(data[i].ToString("x2"));
return sBuilder.ToString();