(13/04/2009, 00:34)mehmetdemiral yazdı: [ -> ]Arkadaşlar
Daha önce gönderdiğim işlemci nodan lisanslama isimli çalışmadaki serial oluşturma kriterinin dörtlüyoruz. ....
Hayırlı günler
Mehmet beyin güzel çalışması için çok teşekkürler.
bu aktivasyon programının işleyişi şöyle değilmi vatandaş bize
"programın süresi bitmiş lütfen bir kaç gün şu acil işlerimi bitirene kadar müsade et"
"ayrıca önümüzdeki yıl için pazarlık yapalım" diyor.
bizde bizdeki programla ona 20 haneli kodu gönderiyoruz. Oda kullanmaya başlıyor.
Ben de diyorum ki bu 20 haneli kodun bir yerlerine kullanılabileceği son tarihi gömelim
mesela bir hafta müsade istedi bizde bu kod içersinin bir yerlerine "11.07.2020" tarihini yerleştirelim
veya bir ay müsade istedi bizde bu kod içersinin bir yerlerine "04.08.2020" tarihini yerleştirelim
veya
bir yıllık anlaştık bizde bu kod içersinin bir yerlerine "04.07.2021" tarihini yerleştirelim
umarım anlaşılmıştır
yardımlarınız için teşekkürler
'RASTLANTISAL SAYILAR ÜRETELİM
r1 = Int(Rnd * 9)
r2 = Int(Rnd * 9)
r3 = Int(Rnd * 9)
r4 = Int(Rnd * 9)
r5 = Int(Rnd * 9)
r6 = Int(Rnd * 9)
r7 = Int(Rnd * 9)
r8 = Int(Rnd * 9)
kısmında müşteriye verilen key de üretilen 8 adet randomize sayı var
biz bunları tarih sayıları ile değiştirsek nasıl olur mesela
31.12.2020 için "r1=3,r2=1,r3=1,r4=2,r5=2,r6=0,r7=2,r8=0" olsa nasıl olur
tabi müşteri uyanık ise ve bu 8 rakamın tarih olduğunu farkederse 2050 yılına kadar lisansı uzatabilir
bu durumda her seferinde tarihi ifade eden sayıların yerleri değişmeli ama bunu ifade eden bir kod olmalı
mesela bios serial no ile ilgili bir ayarlama olsa
ilk 4 rakamın mod 5 e göre değerini tarihin yazılmaya başladığı dörtlüğün sırası olursa mesela
bios seri no ilk 4 rakam "1309"
mod 5 göre çıkabilecek sonuçlar 0,1,2,3,4 dür
bizim XXXX-XXXX-XXXX-XXXX-XXXX şeklinde 5 adet dörtlüğümüz var
1309 mod 5 dersek yani 5 bölümden kalan 4 olur
o zaman tarihi yazmaya 5. dörtlükten başlarız.
Me.ver = m & p & r2 & r6 & "-" & r3 & g & r4 & e & "-" & r5 & d & c & h & "-" & r1 & j & r8 & k & "-" & o & r7 & l & b
' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
bu örnekte r7 den itibaren tarih yazmaya başlarız yani
r7 = 3
r8 = 1
r1=1
r2=2
r3=2
r4=0
r5=2
r6=0
olur
ama bence hala yeterli değil aynı kişi aynı tarihte tekrar kod istese her seferinde farklı key olmalı
bu yöntem ile bir müşterinin alabileceği kod sabit gibi duruyor bunu mehmet bey random sayılar ile aşmış
ama biz random sayıları kaldırınca iş bozuluyor.
nasıl yapmalı acaba
tarihi 8 hane yerine long değeri olarak kullansak nasıl olur
o zaman 5 haneye düşer ilk mesela bugün için "44016"
ilk 2 rakam yani "44" sabit gibi sayılır" veya şöyle olabilir
o günden itibaren kaç gün eklenecekse o sayı gönderilir mesela bir yıllık lisans uzatma için
44016 + 365 gibi
sadece 365 gönderdiğimizi düşünürsek 5 adet random 3 adet tarih değeri sayı ekleyebiliriz
5 adet random sayımız ve 3 adet tarih sayımız var
eğer 7 gün lisans uzatmak istersek "007" gün ekleyeceğiz
5 adet random sayıyı birbirinden farklı üretiriz
her 4 lük için bir random sayı ama bize üç yer lazım bu durumda
random sayılardan en büyük veya en küçük üç tanesini alırız mesela
r1= 5 ,
r2= 9 , r3= 1 , r4= 3 , r5= 7
olsa en büyük 3 tanesi şunlar olur
r2,r5,r1
bu durumda 365 sayısını
r2= 3, r5= 6, r1= 5
şeklinde yazarız
sonuç olarak 5 random sayıdan 3 ü tarihlerin başlangıç yerlerini gösterir
8 rakamdan 3ü random olarak tarih yerlerini diğer 3ü tarih değerini
kalan 2 adet sayı ise tamamen random olarak kalır
müşteriye şöyle bir rakam verdik
"BB46-5021-2059-696A-E008"
bunlardan hangileri tarih, hangileri random sayı, hangileri süzülen sayı
aslında özetle bu 20 karakterden 3 tanesi 3 basamaklı bir sayıyı oluşturuyor örneğimizde "365" sayısını
eğer en az bir hafta en fazla bir yıl olacağını düşünürsek hafta olarak 1-52 arasında bir rakamda seçebiliriz
bu 20 rakamdan iki tanesi 01-52 arasında bir sayının parçaları olacak
neticede 2 adet kaç hafta lisans uzatılacağını belirten sayı var ama nerede ve hangi sayılar
"BB46-5021-2059-696A-E008"
mesela bunların arasında 52 sayısı gizli
hadi 5 bir tane ama 2 sayısı 2 tane
tüm bu laf kalabalığından sonra hasılı kelam
ben aktivasyon kodu ile müşterinin programı kullanabileceği en son tarihi programa bildirmek istiyorum
bunu zorluk derecesine göre bir kaç levelde yapabiliriz
1-8 adet tarih sayısını r1-r8 değerlerine atarız
2-r1-r8 sıralamasını değiştirerek atarız
3-Tarihi Long değeri ile 3 random 5 tarih değeri yazabilirz
4-Tarihi long değerinin son üç rakamı ile yazabiliriz
5-Tarihi gün sayısı olarak ekleyebilliriz
6-Tarihi Hafta sayısı olarak ekleyebiliriz