Files

70 lines
2.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
namespace mononucleosis_pro
{
class Keygen
{
public const int SUBLIME_TEXT = 0;
public const int VISUAL_STUDIO_CODE = 1;
private static readonly byte[] VSCGUIDBytes = new byte[] { 111, 15, 51, 253, 65, 63, 29, 66, 159, 229, 222, 116, 45, 12, 84, 192 };
private static readonly MD5 MD5 = MD5.Create();
private static readonly Guid VSCGUID = new Guid(VSCGUIDBytes);
public string Generate(int type, string email)
{
switch (type)
{
case SUBLIME_TEXT:
return generateSublime(email);
case VISUAL_STUDIO_CODE:
return generateVSCode(email);
default:
return "";
}
}
private string generateSublime(string input)
{
string output = BitConverter.ToString(MD5.ComputeHash(Encoding.UTF8.GetBytes(input))).Replace("-", "").Substring(0, 25).ToLower();
return licenseFormat(output);
}
private string generateVSCode(string input)
{
input = VSCGUID.ToString() + input;
string output = BitConverter.ToString(MD5.ComputeHash(Encoding.UTF8.GetBytes(input))).Replace("-", "").Substring(0, 25).ToLower();
return licenseFormat(output);
}
private string licenseFormat(string input)
{
string output = "";
for (int i = 0; i <= input.Length + 1; i++)
{
if (i % 5 == 0)
{
if (i + 5 < input.Length)
{
output += input.Substring(i, 5) + "-";
}
else
{
output += input.Substring(i);
}
}
}
return output;
}
}
}