PHP'de Parola Karma
Parolayı açık metin halinde saklamak yanlıştır. Bir bilgisayar korsanı veritabanınıza erişebilir ve parolalarınızı çalabilir.
Bu nedenle genellikle kullanıcı adı açık metin
olarak saklanırken, parola parametre olarak parolayı
alan ve bu parolayı geri getirilemeyen bir karma
(karma) değeri olarak döndüren özel bir md5
fonksiyonu ile karma işlemine tabi tutulur.
Örneğin, bir metnin karma değerini bulalım:
<?php
echo md5('12345'); // '827ccb0eea8a706c4c34a16891f84e7b' yazdırır
?>
Şimdi kayıt ve giriş işlemlerimizi düzenlememiz gerekiyor. Başlangıç olarak, kullanıcılar tablosunu temizlemenizi tavsiye ederim, çünkü şu anda parolalar açık metin halinde saklanıyor, oysa onların karma değerleri saklanmalı. Daha sonra kaydı test ettiğinizde tablo yeni formatındaki verilerle dolacaktır.
Şimdi kayıt işlemimizi, yeni bir kullanıcıyı veritabanına kaydederken parolanın kendisi yerine onun karma değerinin ekleneceği şekilde düzeltelim.
Açıklanan düzeltme şuna benzer bir şey olacak:
<?php
$login = $_POST['login'];
$password = md5($_POST['password']); // parolayı karma değerine dönüştür
$query = "INSERT INTO users SET login='$login', password='$password'";
?>
Giriş işlemine de benzer düzeltmeleri yapalım:
<?php
$login = $_POST['login'];
$password = md5($_POST['password']); // parolayı karma değerine dönüştür
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
?>
Karma işlemi dikkate alınarak kayıt işleminde değişiklikler yapın, birkaç yeni kullanıcı kaydedin, veritabanına karma parolalarla eklendiklerinden emin olun.
Karma işlemi dikkate alınarak giriş işleminde değişiklikler yapın, daha önce kaydedilmiş kullanıcılarla giriş yapmayı deneyin.