Wednesday 18 July 2012

Membuat Key Generator Dengan Foxpro

Sambil nunggu hasil projectnya bang wahyu, apdet² dl lah :D
KeyGenerator biasanya digunakan oleh Developer pemrograman untuk menandai software aplikasi yang telah dijual sesuai dengan nama / identitas pembeli / pemakai / client. KeyGenerator juga merupakan tanda kode registrasi software yang dapat membedakan antara pemakai 1 dan pemakai lainnya.
Berikut ane akan coba menjelaskan teknik pembuatan KeyGenerator dengan menggunakan class pada bahasa pemrograman Microsoft Visual Foxpro. ane tertarik untuk menuliskan artikel ini mengingat kesulitan yang ane alami sendiri untuk membuat Keygenerator dengan mudah dan simple menggunakan Microsoft Visual Foxpro.

Langkah untuk membuatnya adalah sebagai berikut:

(1) Buatlah sebuah project baru (dalam hal ini sy beri nama vfpkeygen2012)

(2) Buatlah class baru dengan nama myfungsi yang berbasis custom. Kemudian pada bagian store in, ketikkan nama vfpkeygene2012. Klik tombol OK untuk menyimpan class tersebut, maka secara otomatis program akan menampilkan jendela Class Designer.


(3) Kemudian pilih menu Class dari menu utama Foxpro, dan klik submenu New method…
 

 
 
(4) pada jendela New Method tambahkan dua method dengan nama mtd_creategenerator (method untuk membuat keygeneartor) dan mtd_checkgenerator (method untuk menguji keygenerator). Kemudian klik tombol Close untuk menutup jendela New Method. Hasilnya pada jendela Properties vfpkeygen2012 akan terlihat dua method yang telah berhasil dibuat.



(5) kemudian masukkan code dibawah ini pada method myfungsi.mtd_creategenerator

LPARAMETERS tcSecretString
#DEFINE VALID_CHARS "123456789ABCDEFGHJKLMNPQRTUVWXYZ"
#DEFINE RANDOM_LOWER 1
#DEFINE RANDOM_UPPER 32

LOCAL lcGibberish, lnChar, lnCount, lcMD5, lcUserLisense
lcGibberish = ""
For lnCount = 1 To 8
    lnChar = Int((RANDOM_UPPER - RANDOM_LOWER + 1) * RAND() + RANDOM_LOWER)
    lcGibberish = lcGibberish + Substr(VALID_CHARS, lnChar, 1)
Next

lcMD5 = STRCONV(hash(lcGibberish + tcSecretString, 5),15)

lcUserLisense = lcGibberish

For lnCount = 1 TO 16
    lnChar = MOD(EVALUATE("0x" + Substr(lcMD5, (lnCount * 2) - 1, 2)), 32)
    lcUserLisense = lcUserLisense + Substr(VALID_CHARS, lnChar + 1, 1)
ENDFOR

RETURN (lcUserLisense)



(6) Code dibawah ini pada method myfungsi.mtd_checkgenerator

LPARAMETERS tcEnteredLicense, tcSecretString
#DEFINE VALID_CHARS "123456789ABCDEFGHJKLMNPQRTUVWXYZ"
LOCAL lcGibberish, lcMD5, lcEnteredShouldBe, lnCount, lnChar, llReturn
llReturn = .F.
IF Len(tcEnteredLicense) = 24
    lcGibberish = LEFT(tcEnteredLicense, 8)
    lcMD5 = STRCONV(hash(lcGibberish + tcSecretString, 5),15)
    lcEnteredShouldBe = lcGibberish

    FOR lnCount = 1 TO 16
        lnChar = MOD(EVALUATE("0x" + SUBSTR(lcMD5, (lnCount * 2) - 1, 2)), 32)
        lcEnteredShouldBe = lcEnteredShouldBe + SUBSTR(VALID_CHARS, lnChar + 1, 1)
    NEXT

    llReturn = lcEnteredShouldBe = tcEnteredLicense
ENDIF

RETURN llReturn


(7) Selanjutnya tutup dan simpanlah file class (vfpkeygen2012) yang telah kita buat.
Berikutnya melakukan pengujian, ketikkan perintah berikut ini di jendela perintah (Window Command)

*perintah untuk mengaktifkan library
SET LIBRARY TO LOCFILE("vfpencryption.fll")
* perintah untuk mengaktifkan class
SET CLASSLIB TO vfpkeygen2012
* perintah membuat objekclass
oapp=CREATEOBJECT("myfungsi")
* perintah untuk Membuat Key gen
chasil=oapp.mtd_creategenerator("My_SeCr_et")
* perintah melihat hasil di screen
? chasil
* perintah untuk melakukan pengujian
? oapp.mtd_checkgenerator(chasil,"My_SeCr_et")
* jika mengembalikan nilai .T. berarti kode generator dapat diterima












Yang membuat library ini power full kita dapat menentukan sendiri kode rahasia encrypsi.

catatan: semua coding diambil dari http://www.sweetpotatosoftware.com

link: http://www.sweetpotatosoftware.com/SPSBlog/PermaLink,guid,34321a75-a1fc-4a0e-a9af-17a3c6916d90.aspx

Ane cma melakukan modifikasi dengan menggunakan Class Microsoft Visual Foxpro.


Sekarang, contoh kasusnya misalnya anda telah membuat sebuah program aplikasi Penggajian yang akan didistribusikan
ke PT. ABC lalu kode secret yang anda gunakan adalah kode serial aplikasi 20110311 dan anto2k sebagai kuncinya.
- Nama perusahaan yang akan diberikan serial key: PT. ABC
- kuncinya: "20110311ANTO2K"

maka coding yang digunakan untuk membuat key generatornya adalah:

cCompany="PT. ABC"
cSerial="20110311"
cauthor="ANTO2K"
cSecretKey=alltrim(cCompany)+cSerial+cauthor
cSerialNumber=oapp.mtd_creategenerator(cSecretKey)

cSerialNumber tersebut kemudian disimpan dalam database, lalu pada saat program dijalan ada prosedur / coding
yang khusus melakukan pengujian serial number ini contohnya:

cUjiSerial=oapp.mtd_checkgenerator(cSerialNumber,cSecretKey)
if cUjiSerial
   =messagebox("Serial Ok",64,"Informasi")
   * prosedur selanjutnya jika OK
else
   =messagebox("Program ini belum diregistrasi",16,"Larangan")
   * prosedur selanjutnya jika tidak OK
endif


demikian semoga bermanfaat. :D

Regards :  Pak anto2k

2 comments:

Unknown said...

mantap bang, ijin praktek newbie, sangat bermanfaat :D

[KoNoHa] said...

hajar bang... :D
praktek pertama ane tuk program gt itu bang :D
yg lain rata2 database semua :D

Post a Comment

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | coupon codes