Unicode Support di CentOS 5.5 menggunakan PHP dan PCRE
3 Desember 2010 pada 08:57 | Ditulis dalam I.T., Linux Zone, Server | Tinggalkan KomentarKaitkata: centos, Linux, PHP, server
Saya menggunakan CentOS 5.5 dengan webserver apache 2.2.3 dan PHP 5.1.6. Saat akan menggunakan fungsi regex yang berhubungan dengan karakter unicode seperti (‘\X’, ‘\pL’, dsb) ternyata terdapat error, dan setelah diselidiki ternyata pada PCRE (Perl Compatible Regular Expressions) ada sebuah fungsi yang belum aktif. Demikian pula saat saya memasang sebuah CMS open source dengan nama RackTables yang akan digunakan untuk inventaris rack, server dan semua peripheral yang ada di Data Center. terdapat sebuah error yang berhubungan dengan PCRE. Error-nya adalah
"PCRE compiled with --enable-unicode-properties FAILED"
PERMASALAHAN:
PHP yang terbaru menggunakan PCRE engine untuk menjalankan fungsi regular expression (regex). Karena itu, kita bisa langsung melakukan query langsung menggunakan pcregrep seperti berikut ini:
[pegasus@svr-cabul ~]$ pcregrep ‘/\X*/u’ character.txt
pcregrep: Error in command-line regex at offset 2: support for \P, \p, and \X has not been compiled
Dan ternyata hasilnya terdapat error, bahwa unicode tidak bisa dilakukan. Kemudian ada juga command pcretest untuk melihat hasil kompilasi pcre yang terpasang di komputer/server kita.
[pegasus@svr-cabul ~]$ pcretest -C
PCRE version 6.6 06-Feb-2006
Compiled with
UTF-8 support
No Unicode properties support
Newline character is LF
Internal link size = 2
POSIX malloc threshold = 10
Default match limit = 10000000
Default recursion depth limit = 10000000
Match recursion uses stack
Dari query diatas tampaklah bahwa memang ada yang kurang dalam kompilasi PCRE. dari query diatas diberitahukan bahwa “UTF-8 support” dan “No Unicode properties support”. Hal ini berarti bahwa PRCE diconfig dan dicompile dengan opsi “-enable-utf8″ yang memungkinkan PCRE untuk mengenali dan bekerja dengan UTF-8 encoded string. Namun, PCRE tidak dikompilasi dengan “–enable-unicode-properties” yang diperlukan mendukung karakter unicode seperti ‘\ p’, ‘\ P’, dan ‘\ X’.
SOLUSI:
Untuk mengatasi permasalah ini, maka harus dilakukan kompile ulang terhadap PCRE. Karena saya menggunakan CentOS yang berbasi rpm, maka saya mencari src dari PCRE dan menemukannya di kernel.org yaitu di http://mirrors.kernel.org/centos/5.5/os/SRPMS/pcre-6.6-2.el5_1.7.src.rpm.
1. Download src
[pegasus@svr-cabul ~]$ wget http://mirrors.kernel.org/centos/5.5/os/SRPMS/pcre-6.6-2.el5_1.7.src.rpm
2. Install source rpm
[pegasus@svr-cabul ~]$ sudo rpm -ivh pcre-6.6-2.el5_1.7.src.rpm
perintah ini akan menaruh source kedalam folder /usr/src/redhat/SOURCES dan /usr/src/redhat/SPECS
3. Install rpmbuild
rpmbuild nantinya akan digunakan untuk mengkompile paket source rpm
[pegasus@svr-cabul ~]$ sudo yum install rpm-build
4. Lakukan konfigurasi
buka file /usr/src/redhat/SPECS/pcre.spec, kemudian cari baris
%configure --enable-utf8
dan rubah menjadi seperti berikut ini, kemudian simpan
%configure --enable-utf8 --enable-unicode-properties
5. Build rpm baru
[pegasus@svr-cabul ~]$ sudo rpmbuild -ba /usr/src/redhat/SPECS/pcre.spec
hasil akhir dari perintah diatas, akan membuat rpm baru, dan akan muncul seperti ini:
Wrote: /usr/src/redhat/SRPMS/pcre-6.6-2.7.src.rpm
Wrote: /usr/src/redhat/RPMS/i386/pcre-6.6-2.7.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/pcre-devel-6.6-2.7.i386.rpm
6. Install rpm baru:
[pegasus@svr-cabul src]$ sudo rpm -Uvh redhat/RPMS/i386/pcre-6.6-2.7.i386.rpm
Preparing... ########################################### [100%]
1:pcre ########################################### [100%]
7. Lakukan testing
[pegasus@svr-cabul src]$ pcretest -C
PCRE version 6.6 06-Feb-2006
Compiled with
UTF-8 support
Unicode properties support
Newline character is LF
Internal link size = 2
POSIX malloc threshold = 10
Default match limit = 10000000
Default recursion depth limit = 10000000
Match recursion uses stack
Dan akhirnya, server pun sudah support unicode.
(en)/(de)crypt md5
17 Januari 2007 pada 08:01 | Ditulis dalam I.T., Programming | Tinggalkan KomentarKaitkata: dekripsi, enkripsi, PHP, Programming
Sistem enkripsi, sangat dibutuhkan sekali untuk pengamanan data. Terlebih lagi untuk pengamanan sebuah password. MD5 merupakan salah satunya,,,,
MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128-bit. MD5 merupakan proses enkripsi secara satu arah. Yang sangat kecil kemungkinannya untuk di-decrypt. Namun telah ditemukan algoritma untuk men-decrypt hasil encrypt md5. Itupun kemungkinan paling besar adalah 3 huruf pertama. Tapi situs http://milw0rm.com/ dapat melakukan decrypt md5 secara tepat. Awalnya aku gak percaya tapi setelah kucaba sendiri akhire percaya
Bahkan cuma di pecahkan hanya dalam waktu 53 detik hahaha…
Iseng2 pake PHP lewat DOS.
D:\kopler>edit kopler.php D:\kopler>type kopler.php D:\kopler>php kopler.php 25b7e3900dc9f6f02df48fb8b4484561
Jadi md5 dari “kopler” adalah 25b7e3900dc9f6f02df48fb8b4484561
teros masukkan hasil md5 ke situs http://milw0rm.com/cracker. Hasil encrypt bisa di decrypt tergantung dari kata yang kita gunakan (password strengh).
Tak liat 1menit kemudian, ternyata passwordku gak kuat dan bisa dipecahkan dalam tempo 53detik.
http://milw0rm.com/cracker/list.php

Entahlah, bagaimana caranya koq bisa ketemu, apakah karena kamusnya milw0rm lengkap atau memang ada algoritma tersendiri…..?????????
Blog pada WordPress.com. | Tema: Pool oleh Borja Fernandez.
Tulisan dan komentar feeds.
