Konuyu Oyla:
  • Toplam: 2 Oy - Ortalama: 5
  • 1
  • 2
  • 3
  • 4
  • 5
MySQL Şifreleme
#1
Malumunuz verilerimizi base64 biçiminde veritabanımıza kaydetmek bazen
sakıncalı olabiliyor, md5 tarzı işlevler kullanarak da verilerilerimizi geri
dönüşümsüz olarak istiflemek işimize gelmeyebiliyor. İşte böyle sıkıntı
yaşadığımız zamanlarda kullanabileceğimiz MySQL’in kendi bünyesinde
bulunan bir işlev işimiz görebilir. İçinizin rahat etmediği durumlarda bu
işlevi kullanmanızı şiddetle tavsiye ederim.

İstiflediğiniz veriyi Binary biçiminde saklaması güvenirliğinin kaynağı!

Aşağıdaki misalde bir alışveriş sitemiz olduğunu farzederekten, kredi kartı
numaralarının tutulacağı alanı ve kredi kartı numarasını ele alacağım. 
#Kredi kartı numaralarının 14 hanesinin de veri tabanında tutulması
kanunen yasaktır, ancak 12 hanesini tutulabilir. Bazı işlemler için bu
verilere ihtiyacımız olabiliyor.

1. adım;

öncelikle MySQL’de veriyi saklamak istediğimiz tabloya bir alan açıyoruz ve
bu alanın türünü BLOB olarak belirliyoruz.

___________________________________________________________

tablo -> shopping_details

alan -> CC_Number[BLOB]
___________________________________________________________

#Hatırlatma: ENCODE/DECODE işlevi daha önceden belirlenmiş bir şifreyle
gelecek veriyi tabloya şifreleyerek yazar, geri çekerken de aynı şifreyi
ister ve bu döngü her zaman böyle işler. Yani en evvel bir şifre
oluşturmalı, bunu bir değişkene veya sabite atamalı ve mahfuz bir
dosyada tutmalısınız (mesela db_conn.php veya config.php).

2. adım;

evvelen yukarıdaki hatırlatmada bahsettiğim şifremi oluşturuyorum.

Kod:
<?
#şifrem
$CrypterPassword = "OlumHaciKilincArslanBirGunSendeYalanOlursun";
?>


3. adım;
Kod:
<?
#post’tan verimi alayım temizleyeyim önce
$CCNumber = trim(htmlspecialchars($_POST["CCNumber"]));
#sonra 12 hanesinden gayrısını atayım
$CCNumber = substr($CCNumber, 0, 12);
?>

<?
#veri ekleme sorgum
$MyQuery = "
 INSERT INTO
  shopping_details (CC_Number)
 VALUES
  (ENCODE ’".$CCNumber."’,’".$CrypterPassword."’)"; #dırnaklara dikkat buyrun
@mysql_query($MyQuery);
?>


evet, verimizi güvenli bir şekilde şifreleyerek veri tabanımıza ekledik,
peki çekerken nası edecez?

Kod:
<?
$MyQueryTmp = "
 SELECT
  (DECODE CC_Number,’".$CrypterPassword."’)
 AS
  CCNumber
 FROM
  shopping_details"; #dırnaklara dikkat buyrun
$MyQuery = @mysql_query($MyQueryTmp);
#alan bul
$GetData = @mysql_fetch_array($MyQuery);
#veriyi çek
$ThisIsTheCCNumber = $GetData{"CC_Number"}; #bulduk
?>
Ara
Cevapla PGM
Teşekkür verenler:


Hızlı Menü:


Şu anda bu konuyu okuyanlar: 2 Ziyaretçi



***

Online Shopping App
Online Shopping - E-Commerce Platform
Online Shopping - E-Commerce Platform
Feinunze Schmuck Jewelery Online Shopping