Ads 468x60px

.

Selasa, 03 September 2013

Test Kabel LAN Tanpa LAN Tester


Kali ini saya share software bernama Realtek Ethernet Diagnostic Utility, tool ini dapat Anda gunakan untuk menguji kualitas dari LAN Card dan Kable LAN. Dengan software ini Anda tidak perlu lagi mengeluarkan biaya tambahan untuk membeli alat yang dinamakan “LAN Tester".
Cara penggunaanya mudah, tinggal install saja lalu pilih LAN Card yang akan diuji dan jenis test, ada test diagnostic, send and receive, serta pengkabelan, apakah baik atau tidak.
Gambar Kabel Lan Patch Straight dan Cross
Yang akan saya bahas kali ini adalah test pengkabelan karena test ini paling sering digunakan oleh ahli jaringan seperti saya, masih sama seperti tadi, pilih LAN Card, jenis test adalah ”Cable”, dapat dilihat Link Speednya (tergantung dari jenis LAN Card apakah Ethernet biasa atau Gigabit Ethernet) bila berbeda dari yang seharusnya, maka terjadi kesalahan dalam setting jaringan.
Lihat pula pada pair, length, dan status. Pair menunjukkan koneksi dari tiap susuan kabel (tergantung jenis pengkabelan, crossover, straightover, atau loopback), pada gambar di atas, saya menggunakan kabel loopback, jadi yang akan digunakan adalah kabel nomor 1-2 dan 3-6, length menunjukkan panjang kabel dalam satuan meter, status menunjukkan status pengkabelan saat ini, bila normal berarti kabel telah terhubung, open berarti kabel rusak atau putus, dll.
Download Tools RealTek Disini:
Download RealTex Utility

Sekarang Anda tidak perlu lagi membeli LAN Tester, apalagi yang digital lengkap dengan pendeteksi panjang kabel dan kerusakan, karena di sini semuanya sudah ada.
Selamat belajar dan semoga berhasil :)
Reade more >>

Dasar-Dasar Kriptografi dan Implementasi


Dasar-Dasar Kriptografi dan Implementasinya Dengan Borland Delphi 7 – Dasar-Dasar Cryptography dan Implementasinya
Dasar Dasar Kriptografi
Dokumen ini dibuat dengan tujuan untuk memasyarakatkan kriptografi dan meng-kriptografikan masyarakat. Karena, masih banyak kawan-kawan yang menganggap kriptografi sebagai ilmu yang sangat tinggi dan sulit dipelajari, bahkan ada yang mengkategorikan ilmu ini sebagai ilmu gaib. :D Saya tidak akan bilang bahwa ilmu ini mudah, dan dapat dipelajari hanya dalam waktu semalam. Tidak kawan, semua ilmu yang bagus butuh proses.
Dokumen ini tidak dibuat untuk menjadi referensi utama untuk kriptografi. Karena, kriptografi terlalu luas untuk dibukukan dalam satu buku setebal novel Lord of The Ring, apalagi dalam satu dokumen facebook seperti ini! :D Lebih tepat jika dokumen ini dijadikan sebagai “penunjuk jalan” ke dunia kriptografi yang menarik dan menyenangkan dengan kemungkinan eksploitasi tanpa batas. Untuk kawan-kawan yang sudah lebih tinggi ilmu dan pengalamannya di bidang ini, dengan segala kerendahan hati, saya mohon izin dan maklum atas kesalahan yang mungkin ada di dokumen ini.
Tujuan awal dari kriptografi adalah menyembunyikan isi pesan sehingga tidak dapat terbaca oleh pihak-pihak yang tak diinginkan, tetapi masih dapat dimengerti oleh pihak yang dituju. Seiring perkembangan jaman, kriptografi banyak diterapkan di berbagai bidang, mulai dari tukar menukar informasi di perang dunia kedua, hingga dunia komputerisasi yang kita alami saat ini.
Dokumen ini, tentu saja, tidak akan membahas bagaimana pasukan Nazi mengoperasikan “Enigma”, sehingga membingungkan pihak sekutu. Dokumen ini “hanya” akan membahas kriptografi dan implementasinya di bidang IT. Implementasi yang akan ditunjukkan juga hanya implementasi dasar dan bersifat “offline”, bukan implementasi canggih seperti “email transaction”, “pay pal autorization”, “handshake cryptographic”, dll. Tapi, percayalah kawan, semua implementasi canggih itu, berdasar dari implementasi dasar ini.
Dalam dokumen ini akan dipakai istilah yang umum dipakai dalam dokumen-dokumen kriptografi. Contohnya adalah “plain text”, yaitu pesan asli yang hendak disampaikan. “Cipher text“, yang artinya pesan yang telah di-enskripsi. Dan istilah-istilah lainnya yang mungkin membingungkan, maaf bila itu terjadi.
Sesuai judulnya, dokumen ini menggunakan Borland Delphi 7 sebagai compiler kode-kode yang digunakan. Kenapa? Yap, karena saya memang paling nyaman menggunakan Delphi dengan versi tersebut untuk hal-hal yang berbau kriptografi. Anda bisa memilih menggunakan compiler lain yang paling anda sukai. Untuk library yang dijadikan referensi kriptografi, saya selalu mempercayakan kepada bang Barton, di situs :http://www.cityinthesky.co.uk/opensource/dcpcrypt. Selain open source, alasan saya menggunakan library tersebut adalah kelengkapan dari metode kriptografi yang digunakan. Namun lagi-lagi, ini tidak mengikat. Anda bebas menggunakan library manapun yang paling cocok dengan anda, atau bila anda sudah cukup memahami alur dari algoritma suatu metoda, anda bisa menulis library sendiri.
File-file implementasi yang disertakan dalam dokumen ini merupakan source yang siap di-compile. Bagi kawan-kawan yang memiliki Borland Delphi 7 terinstall di komputernya, bisa langsung meng-klik file dengan ekstensi “dpr”. Bagi yang tidak menginstall compiler tersebut, untuk mengetahui isi kode program, bisa membuka file dengan ekstensi “pas” dengan notepad atau text editor lainnya. File “exe” juga disertakan untuk melihat implementasinya secara langsung.
Dari output yang dihasilkan, kriptografi dapat dibagi menjadi dua, yaitu kriptografi “satu-arah” dan “dua arah”. Dan dalam kriptografi “dua-arah” pun, bila dilihat dari jenis “key” yang digunakan, dapat dibagi menjadi dua, yaitu “symetric key” dan “asymetric key”. Begitulah kira-kira kerangka dari dokumen ini. Walaupun terbagi-bagi seperti itu, tidak menutup kemungkinan semua jenis kriptografi tersebut di implementasikan bersama-sama, atau yang lebih dikenal dengan metode “hybrid”. Pada akhir dokumen, akan diperlihatkan implementasi dari metode hybrid ini.
Dalam implementasinya di dunia IT, plain text yang diinput ke dalam kriptografi, bentuknya bisa bermacam-macam. Bisa file exe, dokumen, gambar, musik, dan semua file digital lainnya. Tergantung dari sang pengguna yang meng-implementasikannya. Inilah mengapa kemungkinan dalam kriptografi menjadi tak terbatas dan sangat menarik! :)
////////////////////////////////////
Kriptografi Satu Arah
////////////////////////////////////
Sesuai namanya, kriptografi ini hanya bisa berjalan satu arah. Atau dengan kata lain, hanya bisa merubah plain text menjadi cipher text, tapi tidak bisa mengembalikan cipher text menjadi plain text. Kriptografi jenis ini sering disebut sebagai “hash”. Ciri khusus hash ini adalah, chiper text yang dihasilkan berbeda-beda (unik) untuk setiap plain text yang di input. Karena ciri khusus ini, hash sering kali dimanfaatkan sebagai “sidik jari” suatu file atau dokumen.
Metode hash yang umum digunakan adalah MD5, SHA1, RipeMD128. Sebenarnya masih banyak metode lainnya, tapi dalam implementasi yang akan disajikan, metode hash yang digunakan adalah ketiga metode tersebut. Implementasi bisa di download di :

Dengan mengeksekusi file “exe” dari implementasi tersebut, dapat kita lihat bahwa tools ini mampu menghitung hash dari plain text dengan jenis text maupun file. Tapi, jangan coba-coba menghitung hash dari file yang berukuran >= 10 MB dengan tools ini, kecuali jika prosessor anda cukup mumpuni. Karena memang, implementasi ini dirancang dengan tidak memperhatikan optimasi pembacaan file. Silahkan anda optimasi sesuka anda. :)
Dalam implementasi tersebut, kode utama terletak pada file “Unit1.pas”. File “DCPmd5.pas”, “DCPsha1.pas”, dan “DCPripemd128.pas” merupakan library dari metode yang bersangkutan yang disediakan oleh DCPCrypt. Sedangkan, file “DCPcrypt2.pas”, “DCPconst.pas”, “DCPblockciphers.pas”, dan “DCPbase64.pas” merupakan file yang “diwajibkan” oleh
DCPCrypt untuk ditaruh di folder yang sama dengan kode utama. Atau bila anda sudah menginstall Borland Delphi 7, anda bisa melihat itu semua dengan membuka file “Project1.dpr”. File yang lain bisa diabaikan, karena merupakan hasil “generate” dari compiler.
Oke, kita coba bedah “source code” dari tool ini untuk memperjelas implementasi kriptografi satu arah atau “hash” ini. Mari kita lihat pada kode utama di baris 42 sampai baris 100. Di situ dapat kita lihat tiga fungsi untuk menghitung masing-masing metode hash. Fungsi-fungsi ini dibuat sendiri oleh saya dengan berpedoman pada petunjuk pemakaian yang dianjurkan oleh DCPCrypt, yang artinya fungsi ini tidak “baku”, dan ya, anda bisa membuat versi yang berbeda sesuai dengan kebutuhan dari implementasi yang anda inginkan.
Dari ketiga fungsi tersebut, dapat kita lihat bahwa fungsi tersebut membutuhkan 1 parameter yang memiliki tipe String, dan akan mengembalikan String juga. Hal ini saya lakukan dengan pertimbangan untuk mempertahankan format awal kriptografi, dari Plain Text berbentuk string menjadi Cipher Text berbentuk string juga. Tapi sekali lagi, ini tidak baku, anda bisa mengganti parameter input menjadi tipe array dari byte misalnya, untuk membaca stream.
Lalu di baris 122 sampai baris 171 pada kode utama, dapat kita lihat proses perhitungan hash dilakukan pada saat user meng-klik tombol “Hash It”. Dapat kita lihat, jika user memilih untuk menggunakan mode “Text”, maka kodenya cukup simpel, hanya meng-assign variable “strPlain” dengan apa yang di-input oleh user. Yang sedikit “tricky” adalah jika user memilih mode “File”, atau menghitung hash dari File yang dipilih. Berbagai macam pendekatan bisa dilakukan di sini. Mengingat ketiga fungsi untuk menghitung hash tadi membutuhkan Plain Text dengan bentuk string, maka pendekatan yang saya pilih adalah merubah semua “isi” file ke dalam bentuk string, lalu meng-assign string tersebut ke dalam strPlain. Setelah variable strPlain siap, kita masukkan variable tersebut sebagai parameter di fungsi untuk menghitung hash dengan metode yang dipilih user.
Demikianlah salah satu contoh implementasi kriptografi satu arah. Implementasi ini bisa dimanfaatkan untuk mengecek ke-aslian suatu file, karena bila suatu file sudah di modifikasi, maka nilai hash akan berubah. Bila anda tertarik untuk melihat detail dari algoritma dari setiap metode, anda bisa melihatnya pada file “pas” yang bersangkutan. Atau saran saya, coba debug program tersebut, agar anda dapat “merasakan” bagaimana algoritmanya mengalir.
////////////////////////////////////
Kriptografi Dua Arah
////////////////////////////////////
Kriptografi jenis ini mungkin sering direferensikan sebagai kriptografi yang “sesungguhnya”, karena memiliki metode “encrypt” untuk merubah plain text menjadi cipher text, dan metode “decrypt” untuk mengembalikan cipher text menjadi plain text. Dalam kriptografi jenis ini, selain plain text dan cipher text, dibutuhkan parameter lainnya yang disebut “key”. Saat ini dikenal dua jenis key yang digunakan, yaitu “Symmetric Key” dan “Assymetric Key”.
Yang perlu diingat dalam proses kriptografi dua arah ini adalah, proses encrypt dan decrypt harus memiliki operasi yang saling bertolak belakang. Misal, pada proses encrypt kita menggunakan operator “+” (tambah), maka pada proses decrypt kita harus menggunakan operator “-“ (kurang). Karena itu, dalam implementasi kriptografinya proses encrypt dan decrypt dibuat menjadi dua implementasi yang berbeda, namun saling melengkapi. Untuk proses decrypt, implementasi akan meniru proses verifikasi serial sebuah software, sedangkan untuk proses encrypt, implementasi akan bertindak sebagai “keygen”-nya.
————————
Symmetric Key
————————
Yang dimaksud dengan symmetric key atau key yang simetris adalah, parameter key yang digunakan dalam proses encrypt dan decrypt, sama. Panjang dari parameter key ini pun bervariasi tergantung dari metoda yang digunakan. Dalam implementasi yang akan diberikan, metoda yang digunakan adalah RC4 dan Blowfish, dengan panjang key 128 bit atau 16 byte.
Dengan alasan tertentu, implementasi akan diberikan dan dibahas dimulai dari proses decrypt terlebih dahulu. Implementasi decrypt dapat di download pada:

Sekali lagi, implementasi ini meniru verifikasi serial sebuah software, tetapi tentu saja, dibuat se-sederhana mungkin, agar proses kriptografinya lebih menonjol. Jadi, implementasi ini bersifat sebagai “penerima” pesan, kemudian mencoba men-decrypt pesan tersebut dan mem-verikasikan apakah pesan tersebut berasal dari “pengirim” pesan yang sah atau tidak.
File-file yang terdapat dalam implementasi ini, tidak jauh berbeda dengan yang berada pada implementasi kriptografi satu arah, hanya library metoda yang bersangkutan yang berubah. Kode utama, lagi-lagi terletak di “Unit1.pas”. Mari kita buka kode tersebut untuk mulai membedah implementasi ini.
Baris 33 sampai dengan 87, menunjukkan dua fungsi untuk men-decrypt dengan masing-masing metoda. Proses decrypt kedua metoda dibuat seragam dengan tujuan menghindari kebingungan, dan yang pasti bukan bentuk baku. Yang berbeda tentu saja algorithma inti masing-masing metoda yang terdapat di file *.pas masing-masing. Dikarenakan penyeragaman ini, pembahasan satu metoda bisa mewakili metoda yang satunya.
Pada baris 35 dapat kita lihat, inisialisasi konstanta key yang disiapkan untuk proses decrypt. Key dibuat dengan format array dari byte dengan lebar 16. Atau, dengan kata lain, key memiliki panjang 16 byte, atau 128 (16*8) bit. Yang perlu dicatat adalah, bahwa dalam Delphi, notasi “$” menunjukkan bahwa angka yang ditulis dalam bentuk hexadecimal. Jadi, pendeklarasian array tersebut bisa saja ditulis seperti ini :
key : array[0..15] of byte = (71,114,105,110,100,83,116,111,110,101,73,115,71,111,111,100);
Pendeklarasian array diatas menggunakan notasi desimal, dengan nilai yang sama. Lalu, mengapa dalam implementasi ditulis dengan notasi hexadecimal? I just love hex, nothing more.
Oke, mari kita lihat di baris 39 dan 40. Di situ dideklarasikan dua variable array untuk menampung input dan output dari proses decrypt ini. Karena yang dilakukan saat ini adalah proses decrypt, maka input adalah Cipher Text yang ditampung pada variable arrCipher, sedangkan output adalah Plain Text yang ditampung pada variable arrPlain. Kedua variable tersebut dibuat dengan panjang yang sama yaitu 8 byte. Hal ini perlu dicatat, karena akan berpengaruh pada penggunaan fungsi ini, kita akan sampai ke sana nanti.
Fungsi decrypt ini menerima parameter dalam bentuk String sebagai input, seperti yang terlihat pada baris 33, sedangkan variable yang di-input ke proses decrypt inti berbentuk array dari byte, seperti yang terlihat pada baris 51. Maka, baris 44 sampai 48, bertugas untuk meng-convert variable String menjadi array of byte. Ada banyak metode yang bisa digunakan untuk tugas ini, seperti misalnya mengambil nilai ASCII dari masing-masing karakter di dalam string, lalu menyimpannya ke dalam array of byte. Tetapi, dalam implementasi ini, metode yang akan digunakan adalah, mengambil setiap 2 (dua) karakter dari string, lalu ditambahkan notasi “$” di depannya untuk kemudian di rubah kedalam bentuk byte (integer) dan disimpan ke dalam array. Dan hal ini dilakukan dengan loop sebanyak 8 (0-7)putaran, karena panjang variable penampung yang ada (arrCipher) adalah 8. Karena itu, panjang String yang valid untuk di-input ke dalam fungsi ini adalah 16 (8*2) karakter, dan karakter yang ada haruslah karakter bilangan hexadecimal, yaitu 1-9 dan A-F. Mari kita ambil contoh untuk memperjelas :
Misalkan, string yang di-input adalah :
“1234567890ABCDEF”
Maka array of byte yang terbentuk adalah :
($12, $34, $56, $78, $90, $AB, $CD, $EF)
atau dalam bentuk desimal adalah :
(18, 52, 86, 120, 144, 171, 205, 239)
Semoga contoh di atas cukup jelas untuk menggambarkan “aliran” algo konversi tersebut.
Baris 49 sampai 52 merupakan kode untuk melakukan proses inti decrypt yang diwajibkan oleh library DCPCrypt ini. Dan hasil dari proses decrypt inti ini ditampung di variable arrPlain yang berbentuk array of byte. Baris 53 mempersiapkan (mengosongkan) variable strResult yang akan menampung hasil dari fungsi decrpyt ini. Jika pada input tadi kita meng-convert dari variable String ke array of byte, sekarang untuk output kita lakukan kebalikannya, merubah variable array of byte ke String. Dan itulah yang dilakukan pada baris 54 sampai 57.
Metode yang digunakan sekarang adalah mengambil setiap byte dari array, lalu men-subtitusikannya dengan karakter yang memiliki nilai ASCII yang bersangkutan, untuk kemudian ditambahkan di variable strResult. Metode ini lebih simpel dari metode sebelumnya, tetapi mari kita ambil contoh untuk lebih memperjelas :
Misalkan, dalam variable arrPlain adalah :
(71, 119, 84, 97, 109, 112, 97, 110)
maka dalam variable strResult akan terbentuk :
“GwTampan”
Semoga contoh di atas bisa memperjelas apa yang sebenarnya sudah cukup jelas. ;D
Demikianlah penjelasan tentang fungsi yang digunakan untuk melakukan decrypt. Fungsi tersebut perlu dipahami sepenuhnya jika kita ingin membuat proses encrypt yang diperlukan untuk membuat keygen dari “software” verifikasi ini. Kita akan bahas hal tersebut dalam implementasi berikutnya. Untuk saat ini, mari kita masuk pada fungsi inti dari program ini, yang dieksekusi pada saat user menekan tombol “Check”.
Fungsi tersebut, tentu saja, terletak pada baris 89 sampai 144. Terlihat banyak percabangan “if” di sana, yang mungkin membingungkan sebagian orang. Bila itu yang terjadi, dengan segala kerendahan hati, saya mohon maaf atas buruknya cara pemogramman saya. Tapi saya rasa, percabangan-percabangan ini tidak perlu dibahas semua, karena hanya untuk mengecek kesalahan-kesalahan dasar input dari user. Yang patut dibahas adalah percabangan pada baris 113. Disitu terlihat bahwa jika “Nama” yang diinput user lebih dari 8 karakter, maka yang diambil hanyalah 8 karakter pertama saja. Dan jika “Nama” yang diinput kurang dari 8 karakter, maka variable tersebut digandakan terus-menerus sampai lebih dari 8, untuk kemudian diambil 8 karakter pertamanya. Lagi-lagi, contoh untuk memperjelas :
Misalkan, nama yang diinput adalah :
“CryptographyIsSuperFun”
maka, yang diambil hanyalah :
“Cryptogr”
Dan, jika nama yang diinput adalah :
“FUN”
maka, hasilnya akan menjadi :
“FUNFUNFU”
Dengan ini, kita “memaksa” variable strName untuk tetap memiliki panjang 8 karakter, tidak peduli berapa karakter yang diinput oleh user. Kenapa? Sebelum dijawab, saya harap anda masih ingat karakteristik dari fungsi decrypt di atas tadi, input yang valid haruslah string dengan 16 karakter (ini menjelaskan percabangan pada baris 107), dan ouput yang dihasilkan adalah string dengan 8 karakter. Dan pada baris 133, terdapat “final check” yang membandingkan variable strName dengan strPlain yang merupakan hasil Decrypt dari Serial yang diinput. Otomatis, strPlain akan selalu memiliki panjang 8 karakter, karena itulah kita perlu “memaksa” strName untuk tetap memiliki panjang 8 karakter.
Sebenarnya ada sedikit “bug” yang cukup mengganggu pada implementasi ini. Yaitu, bila kita memasukkan serial dengan panjang 16 karakter, tapi karakter yang diinput bukanlah karakter hexadecimal, maka akan muncul pesan error yang kurang bagus. :D Tapi tentu saja, hal tersebut bisa diatasi dengan menambahkan percabangan yang mengecek apakah serial yang diinput merupakan karakter hexadecimal atau bukan. Anda bisa menambahkannya bila anda mau! :D :)
Yap, demikianlah salah satu contoh implementasi proses decrypt yang meniru proses verifikasi serial sebuah software. Untuk melengkapinya, yang tersisa adalah proses encrypt yang akan diterapkan pada keygen untuk verifikasi ini.
Oke, implementasi untuk proses encrypt bisa di download pada :

Dalam implementasi ini, jika kita mengeksekusi file “exe”, maka kita bisa meng-generate serial yang valid untuk implementasi verifikasi sebelumnya. Karena memang, implementasi ini bertindak sebagai keygen atau dengan kata lain sebagai “pengirim” pesan. Sedangkan implementasi sebelumnya bertindak sebagai “penerima” pesan.
File-file yang ada dalam implementasi ini sama dengan yang ada di implementasi verifikasi, hanya file “exe” dan “Unit1.pas” yang berbeda, karena implementasi ini menggunakan library dari metoda yang sama dengan implementasi verifikasi. Mari kita buka kode utama implementasi ini di dalam “Unit1.pas” untuk memulai pembedahan kode yang mengasyikan ini.
Yang patut diingat sebelum melakukan pembedahan adalah, bahwa proses pembuatan implementasi keygen ini saling bergantung dengan kode pada implementasi verifikasi. Dan, kita harus melihat bahwa kode keygen ini saling bertolak belakang dengan verifikasi. Yang artinya, jika verifikasi melakukan “buka”, maka keygen melakukan “tutup”, jika verifikasi melakukan “tambah”, maka keygen melakukan “kurang”, dst.
Oke, kita mulai pembedahannya. Kita bisa lihat pada baris 33 sampai 83, terdapat dua fungsi encrypt yang, tentu saja, dibuat seragam, seperti halnya pada implementasi verifikasi. Dan ya, seperti sebelumnya, pembahasan satu metoda bisa mewakili metoda yang satunya. Baris 35 menunjukkan konstanta key yang memang harus sama nilainya dengan proses decrypt, agar kedua proses tersebut saling berhubungan.
Karena proses encrypt ini bertolak belakang dengan proses decrypt, maka kita akan melakukan pembahasan secara terbalik dari bawah ke atas, sambil me-review kode verifikasi. Jadi ada baiknya, jika kita buka kode verifikasi (decrypt) dan keygen (encrypt) secara bersamaan, kecuali jika anda memang sudah hafal dan paham kode verifikasi secara keseluruhan.
Pada baris 44 sampai 48 di kode verifikasi, seperti yang telah dibahas, bahwa fungsi decrypt mengambil setiap dua karakter dari string yang di-input atau cipher text untuk kemudian merubahnya menjadi nilai hex dan menyimpannya ke dalam array of byte. Maka, agar fungsi encrypt kita menghasilkan cipher text yang valid untuk proses tersebut, kita harus melakukan fungsi sebaliknya, ya, merubah array of byte menjadi string dengan format hex. Baris 51 sampai 55 melakukan hal tersebut. Fungsi built-in Delphi “IntToHex” menghasilkan representasi hex dari integer (atau byte) yang diinput. Untuk contoh, silahkan review contoh di atas pada proses verifikasi, tetapi baca dari bawah ke atas.
Kemudian pada baris 49 sampai 52 di kode verifikasi, fungsi decrypt melakukan fungsi inti decrypt sesuai dengan metoda yang dipakai terhadap array of byte hasil konversi dari string yang di-input tadi(cipher text). Maka pada baris 47 sampai 50 di kode keygen, fungsi encrypt harus melakukan fungsi inti encrypt sesuai dengan metoda yang dipakai terhadap array of byte yang nantinya akan di konversi menjadi string output(cipher text), seperti yang telah dibahas pada paragraf sebelumnya.
Lalu pada baris 54 sampai 57 di kode verifikasi, fungsi decrypt mengkonversi lagi array of byte yang telah di “decrypt” ke dalam bentuk string, tetapi kali ini dengan cara subtitusi nilai byte dengan nilai ASCII yang bersangkutan, atau dengan kata lain melakukan konversi byte to ASCII. Maka, fungsi encrpyt kita harus melakukan kebalikannya, yap, konversi ASCII to byte. Baris 43 sampai 46 pada kode keygen menunjukkan hal tersebut, dan ya, fungsi built-in Delphi “Ord” menolong kita untuk melakukan hal tersebut. Dan lagi-lagi, untuk contoh, silahkan lihat contoh “GwTampan” di atas dari bawah ke atas.
Begitulah isi dari fungsi encrypt yang merupakan kebalikan dari fungsi decrypt. Anda bisa menutup kode verifikasi sekarang, jika anda mau. Berikutnya, mari kita bahas penggunaan dari fungsi encrypt ini, pada saat user menekan tombol “G 3 N” yang terletak pada baris 85 sampai 119.
Tidak banyak yang dilakukan dalam kode ini. Baris 97 sampai 108 melakukan hal yang sama dengan yang ada pada kode verifikasi, yaitu memaksa plain text agar tetap memiliki panjang 8 karakter, seperti yang telah dibahas sebelumnya. Dan, jika anda belum menyadarinya, untuk nama “CryptographyIsFun” dan “CryptographyIsSuck” akan menghasilkan serial yang sama, dikarenakan unsur pemaksaan ini. Lalu pada baris 109 sampai 117, kode melakukan encrypt kepada nama (plain text) yang diinput menjadi cipher text yang kemudian di-output menjadi serial.
Demikianlah keseluruhan proses implementasi dari kriptografi dengan key simetris ini. Dan oke, untuk lebih memperjelas lagi, mari kita rangkum keseluruhan proses dengan arah yang “lurus” atau dari encrypt sampai decrypt. Kali ini sang keygen akan kita sebut pengirim, dan sang verifikator akan kita sebut penerima.
Pertama, pengirim men-encrypt nama yang di-input untuk kemudian di-output menjadi serial. Lalu, pengirim mengirimkan pasangan nama dan serial ini kepada penerima. Kemudian, penerima mengecek pasangan nama dan serial yang dikirimkan dengan cara, men-decrypt serial untuk kemudian dibandingkan dengan nama. Jika cocok, maka pasangan nama dan serial tersebut valid dan memang berasal dari pengirim yang sejati, jika tidak cocok, maka pengirim tersebut palsu.
Yap, seperti itulah salah satu contoh implementasi kriptografi dua arah dengan key simetris. Mohon maaf bila penjelasannya terkesan berbelit-belit dan membingungkan, tetapi saya telah mencoba yang terbaik untuk menjelaskan hal yang memang sangat teknis ini. Dan ya, coba “rasakan” bagaimana kode ini mengalir, agar lebih mudah memahaminya. :) 
To be continued… :)
Artikel Diperoleh Dari: Gerard Adam
Sumber: https://www.facebook.com/groups/binushacker/doc/10152001312180464/
Reade more >>

50 Widgets untuk Blog Anda

Widget merupakan cara untuk menambahkan beberapa pernak-pernik dan keunikan ke blog Anda. Apakah Anda ingin menampilkan statistik pengunjung blog anda atau menampilkan visitor situs anda yang terhubung ke situs web Anda, Anda bisa melakukannya dengan widget.
Baru-baru ini saya mendapatkan situs yang berisi 50 Great widgets yang berguna untuk blog Anda dan ingin membagikannya untuk Anda. Sebagian besar dari widgets ini bekerja dengan baik untuk Blogger dan WordPress sehingga tidak masalah untuk platform blogging yang anda gunakan.
Melalui list widgets tersebut silahkan anda memilih dan memasang beberapa widget baru untuk menguji drive pada blog Anda. Saya sarankan tidak berlebihan menghiasi blog Anda dengan terlalu banyak pernak-pernik, karena akan mengurangi kegunaan dan fungsionalitas dari widget tersebut atau justru sebaliknya akan menimbulkan kekacauan diblog anda, sebuah blog dengan terlalu banyak widget hanya akan membingungkan dan menghalangi pandangan orang terhadap konten di situs Anda.
Berikut ini 50 more great widgets untuk blog anda :
1. MyBlogLog’s Recent Readers – Widget ini memperlihatkan avatar dari pengunjung blog Anda.Dengan kepopuleran widget ini manajemen MyBloglog mampu meyakinkan Yahoo untuk membeli sahamnya, anda harus mempunyai account yahoo untuk mendapatkan widget ini.
2. Mashable – Widget ini menyediakan semacam news reel (headline news) dalam element blogger yang memberikan cuplikan berita/postingan dari sosial networking. Ada pilihan warna yang bisa disesuaikan dengan layout blog Anda.
3. Flickr Flash Photo Stream Badge –Menampilkan photo-photo dari profil flickr dengan sentuhan flash. Untuk mendapatkan widget ini Anda memerlukan account yahoo.
4. Preview Anywhere – bagi pengguna blogger disebut snapshots untuk wordpress widget ini tersedia di pengaturan. Fungsinya untuk melihat preview link keluar dengan tampilan small popup ketika pengunjung mengarahkan mouse pada teks atau banner yang “mengandung” link.
5. Twitter Badge – Jika kehidupan Anda banyak hal-hal menarik serta ingin agar orang lain tahu kegiatan apa yang sedang anda lakukan setiap saat, anda bisa menampilkan cuplikan kalimat-kalimat pendek ‘satu paragraf misalnya’ Maka widget ini cocok untuk dipasang pada blog Anda.Widget ini akan menampilkan “tweet” terbaru Anda.
6. Digg News – Manampilkan Link terakhir yang masuk ke Digg (sebuah sosial bookmarking) dengan pilihan theme dan mudah untuk diatur sesuai dengan template blog Anda.
7. FEEDJIT – Menampilan real time data pengunjung blog secara langsung, yang bisa dipasang di sidebar blog anda.
8. LineBuzz – inline komentar untuk Blog Anda. Sangat support untuk blog dengan frekuensi tinggi diatas 900 mhz diskusi/komentar yang berkepanjangan.
9. Flixn – Jika laptop Anda terpasang webcam, maka widget ini bisa menampilkan/ memperlihatkan ekspresi Anda langsung melalui blog Anda .Jadi pengunjung blog tidak hanya membaca postingan Anda tapi bisa menyaksikan ‘konser’ Anda didepan monitor, mirip webcam yahoo.
10. 3Jam – Pengunjung blog dapat berinteraksi dengan Anda dengan mengirimkan SMS pada handphone Anda,tanpa mereka tahu nomor HP Anda.
11. Jaxtr – Seperti halnya widget 3jam di atas, dengan widget Jaxtr ini, pengunjung blog bisa menghubungi HP Anda tanpa mereka tahu nomor HP Anda, nomor HP Anda dijamin kerahasiaannya.
12. LinkedInABox – Menampilkan profile Anda di LinkedIn. Dan widget ini sangat cocok untuk personal blog.
13. Box Widget – Dengan widget ini, memudahkan pengunjung blog Anda untuk mengupload file ke tempat penyimpanan online box.net melalui widget box.net pada blog Anda.
14. Price of gas – Menampilkan harga bahan bakar kendaraan bermotor secara online (US$), “sangat cocok” dipasang untuk blog yang membahas masalah traffic/traveling (caranya tidak perlu mendaftar hanya mengcopas script yang disediakan Gas-Cost.Net)
15. iBegin Weather Widget – Menampilkan informasi laporan cuaca di sidebar blog anda. Seperti widget Price of Gas, widget ini hanya cocok untuk blog yang memang membahas masalah yang sama.
16. ClockLink – Menampilkan jam dalam berbagai macam daerah waktu dengan sentuhan flash yang bagus.
17. Film Loops – Menampilkan kesimpulan film terakhir yang Anda tonton melalui account FilmLoops Anda.
18. Daily Painters – menampilkan lukisan-lukisan dari pelukis terkenal di dunia di blog anda.
19. WhoLinked – Memperlihatkan kepada pengunjung blog Anda situs-situs yang telah melink pada blog Anda,tidak perlu mengupdate karena WhoLinked ini otomatis mengupdate sendiri web/blog yang melink blog Anda.
20. Criteo AutoRoll – memperlihatkan link menuju blog-blog yang serupa dengan blog Anda.
21. Bitty Browser – Menampilkan mini web browser pada sidebar blog Anda.
22. Leafletter – Widget ini membuat mini website dan menyimpannya pada blog Anda.
23. WikiSeek – Menampilkan widget untuk pencarian pada Wikipedia.
24. FeedCount – Menampilkan jumlah pengunjung blog Anda melalui banner kecil dan widget ini berhubungan dengan account feedburner Anda.
25. Technorati Link Count – Menampilkan reaksi jumlah link yang menuju blog Anda dari salah satu directory blog terbesar dan terpopuler.
26. MyPageRank – Inilah cara lain untuk menunjukkan betapa hebat dan bermanfaatnya blog Anda dengan menampilkan Ranking Google atau Google PageRank (PR). Penilaian PR google dihitung berdasarkan rangking 1 sampai 10, semakin besar berarti blog anda semakin populer.
27. CheckPageRank – Pilihan lain untuk menampilkan PR blog Anda, namun kelebihannya widget ini menampilkan juga ranking Alexa anda.
28. BlinkxIt – Menampilkan banner kecil dibawah setiap postingan blog Anda, ketika banner BlikxIt itu di klik maka keluar mini popup seperti snapshot dan menampilkan video yang berhubungan dengan postingan blog Anda.
29. Skype button – Seperti widget yang menampilkan status online YM pada blog Anda, widget ini hampir sama cuma bedanya status online/offline pada accountskype Anda yang ditampilkan.
30. RockYou Horoscope – Widget ini menampilkan primbon/ramalan dan dirancang bagus didalam kotak penuh warna, Tidak menganjurkan/sebaiknya widget ini tidak dipasang pada blogger muslim.
31. del.icio.us Tagometer – Widget ini menampilkan berapa banyak pengguna del.icio.us membookmark blog Anda.
32. del.icio.us Linkrolls – Widget ini menampilkan bookmarks terakhir Anda dari del.icio.us.
33. Timelines – Perlu membuat timeline untuk blog Anda? Maka widget ini cukup mudah digunakan, hanya perlu memasukan RSS blog Anda lalu memasukkan ukuran lebar dan tingginya.
34. PollDaddy – PollDaddy memberikan Anda kemudahan membuat sebuah poling atau survey interaktif dengan theme yang sangat cantik dan menampilkannya dib log anda.
35. Vizu – Pilihan widget lain untuk membuat poling pada blog Anda, kelebihannya widget ini cocok dengan platform blog manapun.
36. AnswerTips – Menampilkan jawaban dari Answers.com untuk berbagai macam istilah yang terdapat pada blog Anda.
37. AnswerBoxes – Masih widget dari Answer.Com hanya saja widget ini memberikan kesempatan pada pengunjung blog Anda untuk memasukan istilah yang tidak dimengerti dan memperoleh jawaban dari Answer.Com.
38. Now Playing – Jika Anda ingin sharing playlist musik yang sedang Anda dengarkan dan ingin agar pengunjung blog Anda juga mendengarkan,Signamp yang akan melakukan triknya bagaimana hal itu bisa terjadi.
39. BuzzBoost – Menampilkan headline dari RSS FeedBurner blog Anda, atau blog lainnya.
40. LibraryThing – memperlihatkan buku terakhir yang telah Anda baca.
41. Plaxo Address Book – Izinkan pengunjung setia Anda untuk mengakses buku tamu mereka langsung dari blog Anda.
42. AuctionAds – Widget yang menampilkan pelelangan barang dari eBay, dan memberi anda persentase dari harga yang dibayar jika suatu saat ada yang membeli barang.
43. aStore – Serupa dengan AuctionAds di atas, hanya saja widget ini datangnya dari Amazon. Buat ’toko online sederhana’ di blog anda, anda akan mendapatkan bonus jika sesorang membeli barang melalui toko online anda.
44. Plazes – Widget ini menampilkan peta dimana posisi Anda berada sekarang.
45. Stockalicious – Perlihatkan portfolio Anda dengan widget ini, dan sharing dengan blogger lain. Biar semua orang tahu berapa banyak dana yang telah Anda keluarkan untuk ngeblog.
46. Yahoo! For Good – Widget ini untuk membuat ‘kotak amal’ dan akan didonasikan kepada yang berhak menerimanya.
47. Giftspace –Teman anda tidak pernah tahu apa yang akan dibelinya untuk hadiah ulang tahunmu? Nah melalui widget ini biarkan mereka tahu kado apa yang sebenarnya Anda inginkan.
48. MixMap – Melihat dimana pengunjung profile MySpace Anda dari sebuah Peta.
49. Google Map Widget – Menampilkan pencarian pada peta google dari blog Anda.
50. Google Video Search – Menampilkan form pencarian video dari video pilihan pada blog Anda.
51. Shoutbox – Fungsi shoutbox adalah untuk menampung pesan singkat teman atau para blogger yang tengah blogwalking.
52. This Day in History – Widget ini menampilkan cuplikan bahwa hari ini ada sejarah apa pada masa lalu.
53. Headline News – Seperti widget mashable, widget ini pun menampilkan cuplikan headline berita dari situs-situs di seluruh penjuru dunia.
54. Calendar – meskipun di platform wordpress widget calender sudah tersedia, namun widget ini masih bisa dipasang baik di wordpress maupun blogger.
55. Counter Statistic – Bagi Anda yang ingin melihat jumlah pengunjung Anda sehari-hari, maka widget ini adalah salah satu yang menyediakan fasilitas tersebut.
56. Histats.Com web counter – Widget ini memungkinkan Anda bisa melacak pengunjung datang dari mana saja, dan menghitung berapa jumlah pengunjung blog Anda sehari-hari, melihat IP Address pengunjung blog Anda dan lain-lain.
57. Bravenet Horoscope – Seperti halnya widget RockYou Horoscope, bravenetpun menyediakan widget horoscope untuk blog Anda.
58. Deal of The Day – Masih dari Amazon.com, merupakan widget paling baru yang direlease amazon.com. Yang menarik dari widget ini adalah diskon besar-besaran yang ditawarkan untuk pengunjung blog Anda.
Sebenarnya masih banyak lagi widget-widget untuk mempercantik blog anda yang betebaran di internet yang sesuai dengan template blog anda dan yang anda sukai, namun setidaknya artikel “50 widget untuk blog anda” ini membantu anda menemukan widget-widget yang anda inginkan.
Selamat mencoba, semoga bermanfaat bagi Blog anda.
Artikel ini saya ambil dari Mashable’s 50 Great Widgets
Reade more >>

Membuat Database di Visual Basic 6.0


Visual Basic 6.0 mempunyai kemampuan untuk menyimpan data lewat menu Add-Ins. Langkah membuat database adalah sebagai berikut :
Pilih menu utama : Add-Ins -> Visual Data Manager





Setelah itu akan tampil window 'VisData';
Lalu klik menu File -> New -> Microsoft Access -> Version 7.0 MDB;
Berikan nama pada database yang akan dibuat;
Klik kanan pada properties, kemudian klik new table;

Kemudian tampil window 'Table Structur;














Lalu klik commandbutton 'Add Field';











Kemudian masukkan Field(name, type, size);

Sebagai contoh adalah gambar di bawah ini :











Setelah itu anda klik commandbutton 'Build The Table' sehingga tampil 'Database Window'.













Untuk mengisi data yaitu dengan cara double klik di nama 
tablenya.











Untuk dapat mengakses suatu database dari visual basic, Anda harus membuat koneksi  ke database tersebut. Visual basic dapat menangani berbagai database, teks bakan worksheet excel. Terdapat beberapa cara yang tersedia untuk itu sesuai dengan database yang digunakan
Cara 1. Menggunakan Object ADO
Anda dapat menggunakan icon Adodc (Microsoft ActiveX Data Objects Data Control) pada toolbox. Jika pada toolbox tidak terdapat icon Adodc, Anda dapat menambahkannya dengan memilih menu Project, Components (Ctrl+T) lalu beri tanda pilih pada Microsoft ADO Data Control (OLEDB) dan klik Apply. Sekarang kita akan mencoba mengaitkan database Ms. Acess yang diberi nama Pembelian.mdb. Untuk itu, lakukan langkah-langkah sebagai berikut:
  1. Pilih menu File lalu New.
  2. Pilih VB Enterprise (Professional) Edition Controls.
  3. Klik OK.
  4. Klik ganda pada folder Forms pada jendela proyek lalu klik ganda pada Form 1 sampai muncul tampilan form.
  5. Klik icon Adodc pada toolbox.
  6. Klik dan seret pada jendela form, sehingga muncul tampilan seperti Gb. Objek yang tergambar dalam form disebut objek data.
  7. Tentukan properti data sebagai berikut:
    1. Name db         Pembelian
    2. Caption           Data Barang
    3. EOFAcction    2
  8. Tentukan properti ConnectionString dengan cara mengklik tombol … pada kolom ConnectionString sehingga muncul tam pilan seperti pada Gb
  9. Pilih OptionButton pada Use Connection String lalu klik Build sehingga muncul tampilan seperti pada Gb
  10. Pilih Microsoft Jet 4.0 OLEDB Provider lalu klik Next.
  11. Pilih (dengan mengklik tombol …) atau ketik nama database yang dipakai pada kolom Select or enter a database name.
  12. Klik Test Connection jika perlu, lalu kllk OK dua kali sampai tampilan kembali ke jendela Form.
  13. Tentukan properti RecordSource dengan cara mengklik tombol pada kolom RecordSource sehingga muncul tampilan seperti pada Gb
  14. Pada kolom Command Type pilih 2-adCmdTable. Setelah kolom ini diisi, maka Anda akan dapat mengisi kolom Table or Stored Procedure Name. lsilah dengan memilib tabel Barang seperti pada Gb
  15. Klik OK.
  16. Simpan form dan proyek dengan nama VB-Lat-01
Cara 2: Mendeklarasikan Objek Ado
Object ado dapat dideklarasi melalui coding. Tiga object bawaan ADO dalam pengembangan aplikasi adalah :
1. Obcet Connection
untuk menangani koneksi antara program dengan sumber data atau server. Deklarasi dapat bersifat lokal maupun global serta dapat diletakan pada level form, modul atau class modul. ADO paling umum membuka suatu koneksi dengan menggunakan obyek Connection Open metoda. Sintaks untuk Metoda Open ditunjukkan sbb:  
Dim connection as New ADODB.Connection
connection.Open ConnectionString, UserID, Password, OpenOptions
Sebagai alternatif, anda dapat menggunakan teknik pintas, recordset.Open, untuk membuka koneksi yang tersembunyi dan mengeluarkan suatu perintah atas koneksi dalam satu operasi. Lakukan hal ini dengan mengaktivkan suatu koneksi yang valid seperti argumentasi ActiveConnection ke Metoda Open. Ini adalah sintaksis untuk masing-masing metoda di Visual Basic: 
Dim recordset as ADODB.Recordset Set
recordset = New ADODB.Recordset
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
Contoh :
Deklarasi object Connection:
     Dim cn As New ADODB.Connection
atau
     Public cn As New ADODB.connection
Selanjutnya mengalokasikan memori untuk onject connection sbb:
     Set cn = New ADODB.Connection
Kemudian isi property object connoction tersebut sbb:
Contoh berikut adalah property untuk MSSQL Server
     cn.connectionString = “Perovider=SQLOLEDB;” & _
                                                 ”Server=NamaServer; ” & _
                                                “Initial catalog= inventory” & _
                                               “user Id = zulidamel” _
                                              “Password=terserah”
     cn.Open
atau
    koneksi =  “Perovider=SQLOLEDB;” & _
                       ”Server=NamaServer; ” & _ 
                       “Initial catalog= inventory” & _
                       “user Id = zulidamel” _
                       “Password=terserah”
cn.Open koneksi
Jika tidak ingin menggunak authentik pada proses koneksi gunakan cara berikut:     
koneksi = “Provider=SQLOLEDB.1;” & _
                  “Integrated Security Info=False;” & _
                 “Data Source = NamaServer” cn.Open koneksiBila koneksi sudah tidak diperlukan tutuplah koneksi dengan perintah
 ”Set cn = Nothing”
2. Object Command
Digunakan untuk perintah SQL ke sumber data atau server. Deklarasi object command sbb:
      Dim CmdBarang As New ADODB.Command
atau
     Public Cmd as New ADODB.Command
selanjutnya alokasikan memori untuk object Command sbb:
     Set CmdBarang = New ADODB.Command
 Kemudian Isi property object command
      CmdBarang.ActiveConection = cn
     CmdBarang.CommandText = “select * from barang”
      CmdBarang.CommandType = adCmdText
3. Object Recordset
Digunakan sebagao penampung hasil eksekusi dalam bentuk tabel. Deklarasi object record sbb:
      Dim rsBarang As New ADODB.Recordset
atau
      Public rsBarang As New ADODB.Recordset
selanjutnya alokasikan memori ynryk object recordset sbb:
      Set rsBarang = New ADODB.recordset
lalu isikan property object record set
      rsBarang.CusrsorTYpe = adOpenDynamic
     rsBarang.LockType = adLockOptimistic
     rsbarang.Open cmdBarang
atau
   rsbarang,open CmdBarang,, adOpenDynamic, adlockOptimistic,  adCmdtext
Data Control
Visual Basic terus berkembang dalam pengembangan general purpose Windows, tetapi kemampuan database tidaklah bagian murni dari desainnya. Data Control,  Visual Basic menambahkan, membuat Visual Basic suatu alat yang jauh lebih tangguh untuk pembuatan pemrograman database.
Data Control memberikan kemudahkan untuk mendapat data ke dalam program anda. Anda dapat dengan mudah mengaitkan  suatu file database, lalu mengaitkan  data lainnya  untuk memindahkan data dari database ke aplikasi anda dan sebaliknya. Data Control pada suatu database dan menetapkan tabel mana yang akan diambil, lalu mengaitkan  ke pengendali Data Control, menetapkan  field yang akan ditampilkan. Pada waktu itu aplikasi anda dapat mengambil, menampilkan, memperbaharui dan membuat database merekam. Alir data di dalam skenario ini ditandai pada gambar.
Reade more >>