HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

IP adreslerini MySQL'de kaydetmek


Öncelikle şuradaki güzel yazıyı okumanızı tavsiye ederim. Ciddi bir benchmark testi uygulanmış.

MySQL kendi içerisinde IP adresi barındırmak için kullanabileceğimiz iki güzel fonksiyonla gelir. Bunlar INET_ATON() ve INET_NTOA() fonksiyonlarıdır. INET_ATON() fonksiyonu string olan IP adresini, 32bitlik UNSIGNED INTEGER biçimine çevirir. INET_NTOA() ise bu işlemin tem tersini yapar.

Hemen test edelim:

mysql> SELECT INET_ATON("88.254.195.158");
+-----------------------------+
| INET_ATON("88.254.195.158") |
+-----------------------------+
|                  1493091230 |
+-----------------------------+
1 row in set (0.02 sec)
mysql> SELECT INET_NTOA("1493091230");
+-------------------------+
| INET_NTOA("1493091230") |
+-------------------------+
| 88.254.195.158          |
+-------------------------+
1 row in set (0.05 sec)

3 kısımdan oluşan, günlük olarak kullandığımız IP adresleri aslında bu işleme tabi tutulmuş adreslerdir. Yani normalde "88.254.195.158" olarak andığımız bir IP adresinin bilgisayar dilinde ki ifadesi "1493091230"dır.

Read more

MySQL veri şifreleme fonksiyonları


MySQL temel olarak 5 tane hazır şifreleme fonksiyonu ile gelir. Bunlar password(), encrypt(), md5, aes_encrypt() ve sha1()'dir. Sahi birde sha() vardı ne oldu ona? Birazdan buna da değineceğim.

MySQL konsolunu açarak hemen bir kaç deneme yapabiliriz:

mysql> SELECT SHA1("serhat");
+------------------------------------------+
| SHA1("serhat")                           |
+------------------------------------------+
| de30e5ef68d3ea5e7eb1de8d922e499cd6bc775e |
+------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT MD5("serhat");
+----------------------------------+
| MD5("serhat")                    |
+----------------------------------+
| 4aa6d74604cad605ccb43b94aa5a7b94 |
+----------------------------------+
1 row in set (0.00 sec)
mysql> SELECT ENCRYPT("serhat");
+-------------------+
| ENCRYPT("serhat") |
+-------------------+
| NULL              |
+-------------------+
1 row in set (0.00 sec)
mysql> SELECT PASSWORD("serhat");
+-------------------------------------------+
| PASSWORD("serhat")                        |
+-------------------------------------------+
| *7B8566BBEC5FD8336D43CDDB7DD13EB891F43CA2 |
+-------------------------------------------+
1 row in set (0.00 sec)
Read more
Date: 19-05-2011

PHP'de Gelen Veri Kontrolü


Formlardan gelen verileri, PHP'nin bazı metodları ile süzgeçleyebilir-kontrol edebiliriz. Bu sayede daha güvenli form işlemleri sürdürebiliriz. Bu yazıda PHP'nin bir takım fonksiyonlarından bahsedeceğim.

trim() fonksiyonu

trim() fonksiyonu, parametresiz kullanımda stringler üzerinde whitespace var ise bunları tespit eder ve devre dışı bırakır. trim() fonksiyonu str ve charlist olmak üzere 2 parametre alabilir. Kullanımı şu şekildedir:

string trim ( string $str [, string $charlist ] )

Bildiğiniz üzere burada ilk parametre zorunlu, ikinci parametre ise opsiyoneldir. İkinci parametre PHP 4.1.0 sürümünde opsiyonel olarak eklenmiştir.

Read more

Şifreleme algoritmaları için benchmark


Veritabanında plain-text olarak veri tutmak tehlikelidir, bu yüzden verilerimizi MD5 veya SHA gibi şifreleme yöntemleri ile şifrelememiz gerekebilir. Bu aşamada seçeceğimiz şifreleme metoduna karar vermek açısından bir performans testi yapmak gerektiğini düşündüm.

Öncelikle şu sayfayı güzelce bir inceleyin, elimizin altında bulunsun: https://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html

Elinizdeki stringin, çeşitli kriptolama yöntemlerinde ortaya çıkarttığı hash hakkında bir ön görüşünüz olması için hazırladığım 'hash_generator' isimli ufak betiği de inceleyebilirsiniz. Bu betiğin kaynak kodu da Gist olarak bulunuyor.

Read more

Excel'den MySQL'e veri import etmek


Şöyle bir excel tablo yapımız olduğunu ve bunu MySQL'e import etmek istediğimizi düşünelim:

id    names    edu
1    serhat    omu
2    mustafa    odtu
3    dundar    ytu

CSV dosya formatı bu iş için biçilmiş kaftandır. Excel'de bulunan verilerimizi CSV yani comma-seperated values formatında kaydedelim.

Read more