Girilen Şifrenin Doğru Formatta Olup Olmadığının Kontrolü [PHP - Regex]

Yazar:

PHP'de Regex yani Türkçe ifade edecek olursam "Düzenli İfadeler" konusuna göre PHP'de şifre kontrolü yapmak oldukça basit. Genel olarak bakıldığında düzenli ifadeler konusunun anlaşılması yeni başlayanlar için biraz karmaşık olabilir.

PHP'deki düzenli ifadeler (regex) konusunu daha iyi kavrayabilmeniz açısından sizlere www.phpliveregex.com sitesine benzer siteler üzerinden regex ifadeleri ile ilgili  pratik yapmanızı tavsiye ederim.


Şifre kontrolü, bir siteye kayıt olan kullanıcıların kişisel hesaplarının güvenliği açısından günümüzde büyük siteler tarafından çokça tercih edilen bir yöntemdir. En basitinden bir örnek vermem gerekirse, outlook.com üzerinden hesap açarken kendi kafanıza göre bir şifre belirleyemiyorsunuz. Kayıt olurken belirlediğiniz şifrenin, sistemin belirlediği şifre kurallarına uygun oluncaya kadar kayıt işleminiz tamamlanmıyor. Bu da kişisel olarak kullanıcıların güvenliği için oldukça önemli bir kontroldür aslında.

Bir üyelik sistemi tasarladık ve tasarladığımız bu üyelik sisteminde kullanıcının, kendi şifresini belirlerken şu şartlara uygun bir şifre girmesini isteyelim :

1) Şifre en az 8 karakter olmalı
2) Şifrede en az 1 tane büyük harf bulunmalı

Bu şartlara uyulmadığı takdirde sistem üyelik işlemini gerçekleştirmesin ve şifrenin uygun formatta olmadığına dair kullanıcıya uyarı mesajı verilsin.

Belirlediğimiz formata uygun bir şifrenin kontrolünü ise regex denilen düzenli ifadeler ile sağlayacağız. Bu yazıda elbette ki komple bir üyelik sistemini yapmayacağım. Sadece kayıt formuna şifre girildiği zaman, girilen bu şifrenin kontrolünün nasıl yapıldğını göstereceğim.





$kontrol = "/\S*((?=\S{8,})(?=\S*[A-Z]))\S*/"; 
kodunun açıklaması :


 \S{8,} ifadesine göre şifrenin en az 8 karkaterli olması gerektiğini belirttik. Virgülden sonra ise bir sınırlama koymadık. Yani en 8 karakter şartını sağladığı sürece, kullanıcı şifreyi istediği uzunlukta belirleyebilir.

(?=\S*[A-Z]) ifadesine göre şifre mutlaka bir büyük harf içersin istiyoruz. İşin mantığı ise şudur, karakter olarak klavyeden ne gelirse gelsin hiç önemli değil. Önemli olan yazılan şifre içinde en azından 1 tane büyük harf olmasıdır.

\S ifadesi boşluk dışındaki herhangi bir karakteri bulur. (Boşlukları görmezden gelir.)
\s ifadesi boşluk (space) bulur.
* (yıldız) ifadesi bir karakterin birden çok kez tekrar edebiliceğini belirtiyor.

Normal şartlarda, yakalamak istediklerimiz parantez için yazılır. fakat istediğimiz şifrede "NE GELİRSE GELSİN HİÇ ÖNEMLİ DEĞİL AMA BU İFADE MUTLAKA OLSUN!" diyebileceğimiz karakterler de olabilir. Bu tür ifadeler için soru işareti kullanılır. Örneğin; (?= ... ) gibi.

Bu konuyla ilgili benim anlatacaklarım bu kadar. Şifre kontrolü ile ilgili Blogkafem dışında kapsamlı bir anlatım yapan bir site ile karşılaşmadığım için bunun da anlatımını ben yapayım dedim. Umarım PHP'ye yeni başlayan arkadaşlara faydalı olur. Öneri, istek, görüş ve düşüncelerinizi aşağıdaki yorum formuna yazabilirsiniz. Hepinize hatasız ve tıkır tıkır çalışan kodlamalar dilerim. :)





Hey!

Blogkafem'de okuduğunuz içeriklerle ilgili kişisel Twitter hesabım üzerinden benimle iletişme geçmek isterseniz Twitter adresim : www.twitter.com/aliarslan10

Sosyal medya hesabım dışında Blogkafem'de okumuş olduğun içerik ile ilgili belirtmek istediklerinizi aşağıdaki yorum formuna yazabilirsin. En kısa sürede dönüş yapacağımdan emin olabilirsin. :)

Okuduğunuz içerik faydalı olduysa #blogkafem etiketiyle okuduğunuz içeriğin linkini Twitter'da paylaşarak Blogkafem'e destek olabilirsiniz.

0 yorum:

Yorum Sayfası :



Yorum yaparken dikkat edilmesi gerekenler;

1. Yorum Formunu doldurduktan sonra Profil Seç -> ADI/URL bölümünden isminizi yazıp yorum yaparsanız size karşı bir hitap şeklimiz olur. (URL kısmını boş bırakabilirsiniz.)

2. Anonim olarak yaptığınız yorumlar "Adsız" olarak gözükmektedir.

3. Türkçe yazım ve dilbilgisi kurallarına uymaya özen gösteriniz.

4. Küfür,hakaret,mail adresi veya konu ile ilgisi olmayan reklam amaçlı website adresi içeren yorumlar yayınlanmamaktadır.

Custom Search

Kafemizde En Son Kim, Ne Demiş?

Kafeyi Dikizleyenler :)

Blog Istatistik

BLOGKAFEM.NET

© Copyright 2008-2016
Sitedeki yazıların her hakkı BLOGKAFEM.NET sitesine aittir.
Kopyalanması halinde lütfen kaynak gösteriniz.
DMCA.com Protection Status
Anasayfa | Hakkımızda | Bizden | Reklam | İletişim