26 Nisan 2018 Perşembe

C# ile lisanslama

Merhaba,

C# ile lisanslama yapacağımız postumuza hoşgeldiniz. Yapacağımız bu uygulamada her bilgisayara özel olan CPU id, Harddisk serial, anakart serial bilgilerini kullanarak internet olmasa dahi üretilebilecek bir anahtar ile lisanslama işlemi yapacağız.

Serial ve id bilgilerini almak için System.Management classını kullanacağız. İlk olarak sınıfı ekliyoruz.

Cpu ID almak için:

#region cpu id // Cpu id alma
     var cpuid = string.Empty;
     string sQuery = "SELECT ProcessorId FROM Win32_Processor";
     ManagementObjectSearcher oManagementObjectSearcher = new ManagementObjectSearcher(sQuery);
     ManagementObjectCollection oCollection = oManagementObjectSearcher.Get();
     foreach (ManagementObject oManagementObject in oCollection)
     {
         cpuid = (string)oManagementObject["ProcessorId"];
         break;
     }
#endregion cpu id

 Harddisk Serial almak için:

#region hdd serial // Harddisk serial alma
    var hddserial = string.Empty;
    ManagementObject dsk = new ManagementObject(@"win32_logicaldisk.deviceid=""c:""");
    dsk.Get();
    hddserial = dsk["VolumeSerialNumber"].ToString();

#endregion hdd serial

Anakart Serial almak için:

#region motherboard serial // Motherboard serial alma
    var motherboardserial = string.Empty;
    ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_BaseBoard");
    ManagementObjectCollection moc = mos.Get();
    foreach (ManagementObject mo in moc)
    {
         motherboardserial = (string)mo["SerialNumber"];
         break;
    }

#endregion motherboard serial

Aldığımız bu bilgilerle bir anahtar kod oluşturacağız ve bu anahtar kodu şifreleme algoritmaları ile şifreleyip kullanıcıya göstereceğiz.

string anahtar = cpuid.Trim() + " " + hddserial.Trim() + " " + motherboardserial.Trim();
anahtar = Md5Sifrele(anahtar);
return anahtar;

burada Md5Sifrele() fonksiyonumuzun kodları

public static string Md5Sifrele(string str) // Md5 Şifreleme algoritması
{
       string result = string.Empty;
       try
       {
           MD5CryptoServiceProvider mD5CryptoServiceProvider = new MD5CryptoServiceProvider();
           byte[] bytes = Encoding.ASCII.GetBytes(str);
           byte[] array = mD5CryptoServiceProvider.ComputeHash(bytes);
           int capacity = (int)Math.Round((double)(array.Length * 3) + (double)array.Length / 8);
           StringBuilder stringBuilder = new StringBuilder(capacity);
           int num = array.Length - 1;
           for (int i = 0; i <= num; i++)
           {
                stringBuilder.Append(BitConverter.ToString(array, i, 1));
           }
           result = stringBuilder.ToString().TrimEnd(new char[]
           {
            ' '
           });
       }
       catch (Exception)
       {
       }
       return result;
}

Artık anahtarımız oluşturuldu. Bunu kendi projenizde kullanıcıya nasıl gösterecekseniz oraya yazdıracaksınız.

Bu anahtarı kontrol etmek ve lisans kodu oluşturmak için ise gelen anahtar kodun üstüne string ifadeler ekleyerek lisansımızı oluşturabiliriz. Bu işlem için ayrı bir uygulama yapıp kullanıcıdan gelen anahtarı alarak üstüne adınızı eklemek gibi bir işlem yapabilirsiniz. Kullanıcı tarafı projede de bunu aynı şekilde kontrol ederek işlemi tamamlamış oluruz. Bu kısımla alakalı örnek isterseniz diye dosyalarımı upload ediyorum.
Link: https://drive.google.com/drive/folders/1kmnfvPVcJoJ4y_QicecjWd2NapKpJItx?usp=sharing
içindeki dosyalardan 1 tanesi(Sifreleme) kullanıcı tarafı sınıfım, diğeri(SifrelemeLisans) lisans üretme programı sınıfımdır.

Umarım faydalı olur. Aklınıza takılan sorular var ise yorumdan yazabilirsiniz,
Teşekkürler..

2 yorum:

  1. dünyanın en anlaşılmayan yazısını yazdığınız için sizi tebrik ediyorum

    YanıtlaSil
  2. Merhabalar Bunu Lisans Şifre Üretmek İçin Veya Kontrol İçin Form Tarafında daha açık bir şekilde anlatırmısınız
    Teşşekürler

    YanıtlaSil