Membuat Proteksi Script PHP dengan Serial Number
Membuat Proteksi Script PHP dengan Serial Number. Bagi programmer PHP tentunya akan sangat kesulitan untuk memproteksi script PHPnya agar tidak dapat di copy paste maupun disebarluaskan. Mungkin dengan sedikit trik ini dapat mengatasi permasalahan agar script PHP anda tidak dapat digunakan oleh orang yang tidak memiliki lisensi/serial number.
Metode yang saya gunakan adalah dengan mengambil alamat MAC address komputer, mengapa karena menurut saya alamat MAC address ini tidak ada yang sama (tapi menurut saya). Jadi logikanya apabila pengguna script PHP ini bukan MAC address yang sesuai maka program tidak akan bisa berjalan. Disini saya menyimpan alamat MAC address di database dengan sebelumnya dienkripsi menggunakan md5();
Contoh script mengambil MAC address dan menginput ke database:
<?php
include "koneksi.php";
ob_start();
//mendapatkan detail ipconfing menggunakan CMD
system('ipconfig /all');
// mendapatkan output kedalam variable
$mycom=ob_get_contents();
// membersihkan output buffer
ob_clean();
$findme = "Physical";
// mencari perangkat fisik | menemukan posisi text perangkat fisik
//Search the "Physical" | Find the position of Physical text
$pmac = strpos($mycom, $findme);
// mendapatkan alamat peragkat fisik
$mac=substr($mycom,($pmac+36),17);
echo "kode lisensi:".md5($mac);
//serial number dari md5 MAC address
$serial=md5($mac);
$query=mysql_query("update berita set judul='$serial', isi='0' where idberita=4");
//serial ini akan dimasukkan ke dalam database, namun nilai aktivasi masih kosong. Kode aktivasi akan diinputkan oleh pengguna
echo "<br>serial ".sha1($mac);
//nah untuk generate kode aktivasi saya gunakan sha1 alamat MAC
?>
<form method="post" action="cekserial.php?aksi=aktivasi" enctype="multipart/form-data" name="aktivasi">
<input type="text" name="lisensi" size="50">
<input type="submit" value="Aktivasi" name="submit">
</form>
<?
if($_GET["aksi"]=="aktivasi"){
echo "kode aktivasi anda = $_POST[lisensi]";
$query=mysql_query("update berita set isi='$_POST[lisensi]' where idberita=4");
//masukkan kode lisensi sesuai dengan MAC addressnya
}
?>
Simpan script di atas misalnya cekserial.php, tentunya anda harus membuat database terlebih dahulu silahkan jalankan SQL berikut
CREATE TABLE `berita` (
`idberita` int(11) NOT NULL auto_increment,
`judul` varchar(255) collate latin1_general_ci NOT NULL default '',
`isi` text collate latin1_general_ci NOT NULL,
PRIMARY KEY (`idberita`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;
--
-- Dumping data for table `berita`
--
INSERT INTO `berita` (`idberita`, `judul`, `isi`) VALUES
(4, '826d560768e964222123bcc400a5c6eb', '0');
Nah sekarang inputkan serial number yang telah digenerate pada teks area (untuk mempermudah saja), namun nantinya script generate serial number ini harus hanya anda yang memiliki, yaitu mengenkripsi mac address menggunakan sha1, jadi intinya nanti si pengguna software anda akan mengirimkan kode MAC yang telah dienkripsi dengan md5(), misal pada kasus di atas adalah 826d560768e964222123bcc400a5c6eb maka selanjutnya gunakan sha1(MAC) dan akan diperoleh kode aktivasi, misal 236755ac14eef04adf3c2e5ea668f5219de98ef8 dan inilah yang akan terinput ke dalam database:
Nah sampai disini kita sudah mendapatkan serial number dan aktivasinya, lalu bagaimana untuk cek apakah software yang digunakan sudah sesuai dengan komputer yang diinginkan, artinya komputer yang telah teraktivasi, jadi apabila digunakan ke komputer lain walaupun menggunakan database yang sama, maka program tidak akan berjalan. Berarti cek saja apabila MAC address komputer berbeda dengan MAC address yang ada di database dan cek apakah sudah teraktivasi dan nilai aktivasiya merupakan sha1 MAC addressnya. Jika iya, maka program dapat berjalan, namun jika sebaliknya program tidak akan bisa berjalan.
Nah untuk scriptnya silahkan pantau postingan saya selanjutnya
Metode yang saya gunakan adalah dengan mengambil alamat MAC address komputer, mengapa karena menurut saya alamat MAC address ini tidak ada yang sama (tapi menurut saya). Jadi logikanya apabila pengguna script PHP ini bukan MAC address yang sesuai maka program tidak akan bisa berjalan. Disini saya menyimpan alamat MAC address di database dengan sebelumnya dienkripsi menggunakan md5();
Contoh script mengambil MAC address dan menginput ke database:
<?php
include "koneksi.php";
ob_start();
//mendapatkan detail ipconfing menggunakan CMD
system('ipconfig /all');
// mendapatkan output kedalam variable
$mycom=ob_get_contents();
// membersihkan output buffer
ob_clean();
$findme = "Physical";
// mencari perangkat fisik | menemukan posisi text perangkat fisik
//Search the "Physical" | Find the position of Physical text
$pmac = strpos($mycom, $findme);
// mendapatkan alamat peragkat fisik
$mac=substr($mycom,($pmac+36),17);
echo "kode lisensi:".md5($mac);
//serial number dari md5 MAC address
$serial=md5($mac);
$query=mysql_query("update berita set judul='$serial', isi='0' where idberita=4");
//serial ini akan dimasukkan ke dalam database, namun nilai aktivasi masih kosong. Kode aktivasi akan diinputkan oleh pengguna
echo "<br>serial ".sha1($mac);
//nah untuk generate kode aktivasi saya gunakan sha1 alamat MAC
?>
<form method="post" action="cekserial.php?aksi=aktivasi" enctype="multipart/form-data" name="aktivasi">
<input type="text" name="lisensi" size="50">
<input type="submit" value="Aktivasi" name="submit">
</form>
<?
if($_GET["aksi"]=="aktivasi"){
echo "kode aktivasi anda = $_POST[lisensi]";
$query=mysql_query("update berita set isi='$_POST[lisensi]' where idberita=4");
//masukkan kode lisensi sesuai dengan MAC addressnya
}
?>
Simpan script di atas misalnya cekserial.php, tentunya anda harus membuat database terlebih dahulu silahkan jalankan SQL berikut
CREATE TABLE `berita` (
`idberita` int(11) NOT NULL auto_increment,
`judul` varchar(255) collate latin1_general_ci NOT NULL default '',
`isi` text collate latin1_general_ci NOT NULL,
PRIMARY KEY (`idberita`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=5 ;
--
-- Dumping data for table `berita`
--
INSERT INTO `berita` (`idberita`, `judul`, `isi`) VALUES
(4, '826d560768e964222123bcc400a5c6eb', '0');
Nah sekarang inputkan serial number yang telah digenerate pada teks area (untuk mempermudah saja), namun nantinya script generate serial number ini harus hanya anda yang memiliki, yaitu mengenkripsi mac address menggunakan sha1, jadi intinya nanti si pengguna software anda akan mengirimkan kode MAC yang telah dienkripsi dengan md5(), misal pada kasus di atas adalah 826d560768e964222123bcc400a5c6eb maka selanjutnya gunakan sha1(MAC) dan akan diperoleh kode aktivasi, misal 236755ac14eef04adf3c2e5ea668f5219de98ef8 dan inilah yang akan terinput ke dalam database:
Nah sampai disini kita sudah mendapatkan serial number dan aktivasinya, lalu bagaimana untuk cek apakah software yang digunakan sudah sesuai dengan komputer yang diinginkan, artinya komputer yang telah teraktivasi, jadi apabila digunakan ke komputer lain walaupun menggunakan database yang sama, maka program tidak akan berjalan. Berarti cek saja apabila MAC address komputer berbeda dengan MAC address yang ada di database dan cek apakah sudah teraktivasi dan nilai aktivasiya merupakan sha1 MAC addressnya. Jika iya, maka program dapat berjalan, namun jika sebaliknya program tidak akan bisa berjalan.
Nah untuk scriptnya silahkan pantau postingan saya selanjutnya
Posting Komentar untuk "Membuat Proteksi Script PHP dengan Serial Number"