Jumat, 10 Desember 2010

Membuat Serial Number

Pernahkan terpikirkan oleh Anda untuk mendistribusikan aplikasi yang Anda buat sebagai shareware? Sehingga orang dapat mencoba terlebih dahulu aplikasi tersebut dan mereka dapat mengetahui apakah aplikasi tersebut benar-benar berguna bagi mereka atau tidak.
Dengan mendistribusikan aplikasi yang hendak Anda jual dengan metode shareware maka dapat menekan biaya promosi dan dapat menjangkau pasar yang luas (seluruh dunia), Anda cukup meletakan aplikasi yang akan dijual tersebut dan mempromosikannya melalui website ataupun melalui mailing list, bagi mereka yang tertarik untuk mencoba aplikasi tersebut maka mereka tinggal download dari internet.

Aplikasi yang didistribusikan dengan metode shareware biasanya memiliki batasan waktu dalam penggunaannya dan jika batas waktu sudah habis maka user harus melakukan aktifasi dengan cara mendaftarkan aplikasi tersebut atau membeli lisensi kepada pemilik aplikasi tersebut dengan cara menyebutkan serial number pada aplikasi yang ada.

Ada juga jenis shareware yang tidak menggunakan batasan waktu, akan tetapi melakukan pembatasan pada fasilitas-fasilitas yang dapat digunakan. Bahkan ada juga yang tidak menggunakan batasan waktu atau pembatasan fasilitas, akan tetapi aplikasi yang digunakan akan selalu menampilkan iklan pada saat aplikasi tersebut digunakan.

Ketika pemilik aplikasi menerima pendaftaran atau pembayaran dari user yang ingin melakukan aktifasi, maka pemilik aplikasi akan mengirimkan activation key kepada user untuk dimasukan pada form aktifasi yang disediakan pada aplikasi yang digunakan.

Jika Anda sebagai pemilik aplikasi tentu Anda tidak ingin activation key tersebut dapat digunakan oleh beberapa user yang berbeda yang secara sengaja menggandakan aplikasi tersebut untuk keuntungan pribadi, hal ini dapat disiasati dengan cara menciptakan serial number yang berbeda untuk setiap user yang berbeda (satu user satu serial number) sehingga activation key hanya dapat digunakan oleh satu user saja.

Untuk menciptakan serial number yang unik untuk masing-masing user kita dapat memanfaatkan serial number yang terdapat pada harddisk, sehingga setiap aplikasi yang diinstal pada komputer yang berbeda maka akan memiliki serial number yang berbeda pula.

Contoh pembuatan serial number aplikasi dan activation key dengan memanfaatkan serial number yang terdapat pada harddisk dapat dilihat pada contoh program berikut.






===================================================================
Kode Program
====================================================================

Option Explicit

Private Declare Function GetVolumeInformation Lib “Kernel32″ _
Alias “GetVolumeInformationA” (ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, _
ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long

Private Function GetHDDSerialNumber(ByVal DriveLetter As String) As String
Dim SN As Long
Dim VolumeNameBuff As String
Dim FileSystemBuff As String

VolumeNameBuff = String$(255, Chr$(0))
FileSystemBuff = String$(255, Chr$(0))
GetVolumeInformation UCase(DriveLetter) & “:\”, _
VolumeNameBuff, 255, SN, 0, 0, FileSystemBuff, 255
GetHDDSerialNumber = Trim(Hex$(SN))
End Function

Private Function CreateAppSerialNumber _
(ByVal HDDSerialNumber As String) As String
Dim i As Integer
Dim temp As String
Dim temp2 As String

temp = Empty
For i = 1 To Len(HDDSerialNumber) Step 2
temp = temp & Mid(HDDSerialNumber, i + 1, 1) & _
Mid(HDDSerialNumber, i, 1)
Next

For i = Len(temp) To 1 Step -1
Select Case Asc(Mid(temp, i, 1)) + 1
Case 48 To 57, 65 To 90, 97 To 122
temp = temp & Chr(Asc(Mid(temp, i, 1)) + 1)
Case Else
temp = temp & Mid(temp, i, 1)
End Select
Next

For i = 1 To Len(temp) Step 2
temp2 = temp2 & Mid(temp, i, 1) & _
Mid(temp, Len(temp) \ 2 + i, 1)
Next

CreateAppSerialNumber = temp2
End Function

Public Function CreateActivationKey _
(ByVal AppSerialNumber As String) As String
Dim i As Integer
Dim j As Integer
Dim temp As String

temp = Empty
For i = 1 To Len(AppSerialNumber) \ 2
temp = temp & (Asc(Mid(AppSerialNumber, i, 1)) Xor _
Asc(Mid(AppSerialNumber, Len(AppSerialNumber) \ 2 + 1, 1)))
Next
CreateActivationKey = Hex$(Val(temp))
End Function

Private Sub Form_Load()
txtSerialNumber.Text = CreateAppSerialNumber(GetHDDSerialNumber(”c”))
End Sub

Private Sub cmdHint_Click()
MsgBox “Activation Key: ” & _
CreateActivationKey(CreateAppSerialNumber _
(GetHDDSerialNumber(”C”)))
End Sub

Private Sub cmdOK_Click()
If txtActivationKey.Text = CreateActivationKey(txtSerialNumber.Text) Then
MsgBox “Thank you!”, vbOKOnly Or vbInformation, App.Title
Else
MsgBox “Wrong answer!”, vbOKOnly Or vbInformation, App.Title
End If
End Sub

Private Sub cmdCancel_Click()
Unload Me
End Sub
=======================================
sumber: http://it.visikita.net
=========================================

Tidak ada komentar: