Forum
merhaba,
c# da geliştirmiş olduğum uygulamayı lisanslamak istiyorum.
İşlemci, HDD veya MAC nasıl yaparım.
MAC adresi sağlıklı olmaz.
harddisk ve cpu seri no / tip bilgilerini birleştirip md5 ile şifreleyin ve licence.lic gibi bir dosyası oluşturun. programınız açılırken disk & cpu seri nolarını md5'le şifreleyip licence.lic dosyasındaki text ile kıyaslasın. veriler eşleşmediği zaman program lisans ekranını çağırsın.
bu aşamada ekranda bir key oluşsun, o size verildiğinde sisteminizin kabul edeceği karşı keyi telefonla veya internet üzerinden verin. sistem sizin ürettiğiniz algoritmaya uygun keyi anladığında licence.lic dosyasını yeni disk & cpu seri nolarına göre yeniden oluştursun.
İlginiz için teşekkür ederim bu konuda bir örnekle yardımcı olabilirsiniz.
tabi, öğlen gibi örnek class gönderebilirim.
İlginiz için teşekkür ederim bu konuda bir örnekle yardımcı olabilirsiniz.
Ekteki uygulamada lisans dosyası yapmayı ve lisans dosyası kontrol etmeyi, ayrıca cd key girerek doğrulama ve lisans yenilemeyi simüle ettim.
takıldığınız yer olursa sorarsınız.
form load'da lisans sorgulatırsınız, eğer lisans dosyası ve veriler uyuşmuyorsa cd key ekranını getirirsiniz.
bu hızlı olması açısından basit bir örnek, istediğiniz gibi geliştirebilirsiniz.
Teşekkür Ederim.
İNdirdim şuandan itibaren ilgileniyorum, inşallah çözebilirim.
Teşekkür Ederim.
İNdirdim şuandan itibaren ilgileniyorum, inşallah çözebilirim.
Aklınıza takılan birşey olursa buradayım.
tekrar merhaba,
Sistemin Müşteriye Verdiği Rastgele Rakamlar kısmını her makina için sabit değilde işlemci hdd ye göre oluşturabilirmiyiz.
yani her makinada veya donanım değiştiğinde değişsin.
o şekilde yaparsanız bu sefer karşı tarafa ne vereceğinizi bilemezsiniz.
c#'ta random sayı üretmeyi biliyorsunuzdur.
lisans ekranı her açıldığında 5 haneli 4 rakam oluşturup kutulara dağıttığını düşünün.
kullanıcı her kapatıp açtığında değişsin rakam. siz de oluşturduğunuz mantığa göre cevabını verebilin.
hatta bir dil geliştirin, 1,2,3,4,5,6,7,8,9,0, A,E,M,C,X,Y,O,D,L,Z gibi 10 rakam 10 harf kullanın. lisans ekranı her açıldığında bunlardan karma bir key çıkarsın.
ayrıca olayı aşağıdaki şekilde daha zorlaştırın;
örnek, 1. grup kutucuklarda müşteri ekranındaki 1 rakamının sizdeki karşılığı 3 olsun, 2 rakamının karşılığı Z olsun.
2. grup kutucuklarda 1 rakamının karşılığı M, 2 rakamının karşılığı O
3. grup kutucuklarda 1 rakamının karşılığı 6, 2 rakamının karşılığı A
4. grup kutucuklarda 1 rakamının karşılığı C 2 rakamının karşılığı E, A harfinin karşılığı X L harfinin karşılığı 3 olsun gibi bunu istediğiniz kadar uzatıp zorlaştırabilirsiniz...
_________
burada amaç programı sattığınızda ben size telefonda bendeki rakamları vereceğim siz de karşılığını vereceksiniz ve licence.lic dosyası oluşacak.
daha sonra donanım değişikliği olduğunda sistem bunu anlayacak ve tekrar sizden key istemek zorunda kalacağım. lisans ekranı her açıldığında da karşıma çıkan key değişecek.
yada kendinize bir lisans sunucusu yaparsınız, programınız lisans talebini internet üzerinden yapar, panelinizden onay vermeniz halinde licence.lic dosyasını oluşturur.
her bilgisayarda aynı key mantığımı kullanmayayım, her bilgisayarda farklı birşey olsun diyorsanız, dediğim gibi kendinize bir lisans sunucusu yapın.
program açıldığında online lisans talebi yapsın, müşteri ve yazılım bilgileri sizin tarafınızda bir db'de tutulsun, onay tuşuna basın ve karşı tarafa lisans dosyası yada dosya oluşturma komutu gitsin.
ama keyin kırılacağı düşüncesi gözünüzü korkutmasın. yaptığımız özel programlar word, excel, photoshop gibi yaygın olmayacağından çok fazla hack riski taşımıyor.
Hocam Merhaba,
Çok Teşekkür ederim yardımlarınız için,
son bir sorum bana oluşturacak olduğum key üreticiye yapıp gönderme şansınız var mı
ben textboxlara 5 haneli rastgele sayı ürettim.
ama lisans verme ekranını halledemedim.
yani karşıdan verilen keyi girince verecek olduğum Lisans keyini oluşturamadım. tek haneli sayıyı cevirebidim ama 5 haneliyi yapamadım
Hocam Merhaba,
Çok Teşekkür ederim yardımlarınız için,
son bir sorum bana oluşturacak olduğum key üreticiye yapıp gönderme şansınız var mı
ben textboxlara 5 haneli rastgele sayı ürettim.
ama lisans verme ekranını halledemedim.
yani karşıdan verilen keyi girince verecek olduğum Lisans keyini oluşturamadım. tek haneli sayıyı cevirebidim ama 5 haneliyi yapamadım
private string BenimSallamaAlgoritmam(string p)
{
switch (p)
{
case "1": return "5";
case "2": return "4";
case "3": return "7";
case "4": return "8";
case "5": return "9";
case "6": return "2";
case "7": return "6";
case "8": return "0";
case "9": return "1";
case "0": return "3";
}
return null;
}
burada müşterinin sizden aldığı keyi kendine göre kıyaslıyor. ve doğruysa lisans işlemine onay veriyor.
siz kendi ekranınızda bunun tersini çalıştıracaksınız. yani müşteriden aldığınız 52875 - 87584 - 12485 - 63589 kodunu gireceksiniz. sistem şunu geri döndürecek;
private string MusteriyeVerilecekSifre(string p)
{
switch (p)
{
case "1": return "9";
case "2": return "6";
case "3": return "0";
case "4": return "2";
case "5": return "1";
case "6": return "7";
case "7": return "3";
case "8": return "4";
case "9": return "5";
case "0": return "8";
}
return null;
}
52875 - 87584 - 12485 - 63589 karşılığında
16431 - 43242 - 96241 - 70145 keyi vereceksiniz. müşteri de bu keyi girdiğinde sistem onu eşleyerek kabul edecek
hocam burası tamam zaten. sorun buttona yazacağım kod yukarıyoı ben müşteriden telefonla alıp manuel giriyorum.
lisans oluştur deyince bu olgaritmaya göre alttaki text boxlara uygun değerleri yazacak burayı halledemedim.
kodu yukarıda yazdım zaten. doğrulamanın tam tersi.
hocam özelden numaranızı alma şansım var mı
public void MusteridenGeleniTextlerebol(string key)
{
string musteridenGelenKeyinKarsiligi = KeyOlustur(key);
txtGrup1.Text = musteridenGelenKeyinKarsiligi.Substring(0, 5);
txtGrup2.Text = musteridenGelenKeyinKarsiligi.Substring(5, 5);
txtGrup3.Text = musteridenGelenKeyinKarsiligi.Substring(10, 5);
txtGrup4.Text = musteridenGelenKeyinKarsiligi.Substring(15, 5);
}
private string KeyOlustur(string key)
{
string[] arrKey = key.Select(c => c.ToString()).ToArray();
string[] olmasiGereken = new string[arrKey.Length];
for (int i = 0; i < arrKey.Length; i++)
{
olmasiGereken[i] = BenimSallamaAlgoritmam(arrKey[i]);
}
return string.Join("", olmasiGereken);
}
private string BenimSallamaAlgoritmam(string p)
{
switch (p)
{
case "1": return "9";
case "2": return "6";
case "3": return "0";
case "4": return "2";
case "5": return "1";
case "6": return "7";
case "7": return "3";
case "8": return "4";
case "9": return "5";
case "0": return "8";
}
return null;
}
bunu müşteriye parola vermek için yaptığınız forma koyun
butona da MusteridenGeleniTextlerebol(txt1.text+txt2.text+txt3.text+txt4.text); diye giriş yapın
tamam hocam sağol
deniyorum hemen
tamam hocam çok sağol
oldu şimdi artık ben biraz karmaşık hale getireyim.
çok teşekkür ederim.
GUID yapısına bi bakın ,4 lü bloklar halinde kendinize göre özelleştirerek kullanabilirsiniz .