PHP Eğitimi

PHP ANA SAYFA PHP'ye Giriş PHP Kurulumu PHP Sözdizimi PHP Yorumları PHP Değişkenleri PHP Yankı / Yazdır PHP Veri Türleri PHP Dizeleri PHP Numaraları PHP Matematik PHP Sabitleri PHP Operatörleri PHP If...Else...Elseif PHP Anahtarı PHP Döngüleri PHP Fonksiyonları PHP Dizileri PHP Süper Küreseller PHP Normal İfade

PHP Formları

PHP Form İşleme PHP Form Doğrulama PHP Formu Gerekli PHP Formu URL/E-posta PHP Formu Tamamlandı

PHP Gelişmiş

PHP Tarih ve Saat PHP Dahil PHP Dosya İşleme PHP Dosyası Aç/Oku PHP Dosyası Oluştur/Yaz PHP Dosya Yükleme PHP Çerezleri PHP Oturumları PHP Filtreleri PHP Filtreleri Gelişmiş PHP Geri Çağırma İşlevleri PHP JSON'u PHP İstisnaları

PHP OOP

PHP OOP nedir PHP Sınıfları/Nesneleri PHP Oluşturucu PHP Yıkıcı PHP Erişim Değiştiricileri PHP Kalıtımı PHP Sabitleri PHP Soyut Sınıfları PHP Arayüzleri PHP Özellikleri PHP Statik Yöntemler PHP Statik Özellikler PHP Ad Alanları PHP Yinelenebilirler

MySQL Veritabanı

MySQL Veritabanı MySQL Bağlantısı MySQL Veritabanı Oluştur MySQL Tablo Oluştur MySQL Veri Ekle MySQL Son Kimliği Al MySQL Ekle Çoklu MySQL Hazırlandı MySQL Seçim Verisi MySQL Nerede MySQL Sıralaması MySQL Verileri Sil MySQL Güncelleme Verileri MySQL Sınır Verileri

PHP XML'i

PHP XML Ayrıştırıcıları PHP SimpleXML Ayrıştırıcı PHP SimpleXML - Al PHP XML Expat'ı PHP XML DOM'si

PHP - AJAX

AJAX'a Giriş AJAX PHP AJAX Veritabanı AJAX XML'i AJAX Canlı Arama AJAX Anketi

PHP Örnekleri

PHP Örnekleri PHP Derleyici PHP Testi PHP Alıştırmaları PHP Sertifikası

PHP Referansı

PHP'ye Genel Bakış PHP Dizisi PHP Takvimi PHP Tarihi PHP Dizini PHP Hatası PHP İstisnası PHP Dosya Sistemi PHP Filtresi PHP FTP'si PHP JSON'u PHP Anahtar Kelimeler PHP Libxml PHP Postası PHP Matematik PHP Çeşitli PHP MySQLi PHP Ağı PHP Çıkış Kontrolü PHP Normal İfade PHP SimpleXML PHP Akışı PHP Dizisi PHP Değişken İşleme PHP XML Ayrıştırıcı PHP Posta Kodu PHP Saat Dilimleri

PHP crypt() İşlevi


❮ PHP Dize Referansı

Tanım ve Kullanım

crypt() işlevi, DES, Blowfish veya MD5 algoritmalarını kullanarak karma bir dize döndürür.

Bu işlev, farklı işletim sistemlerinde farklı davranır. PHP, hangi algoritmaların mevcut olduğunu ve kurulduğunda hangi algoritmaların kullanılacağını kontrol eder.

Tuz parametresi isteğe bağlıdır. Ancak, crypt() tuzsuz zayıf bir parola oluşturur. Daha iyi güvenlik için yeterince güçlü bir tuz belirttiğinizden emin olun.

crypt() işleviyle birlikte kullanılan bazı sabitler vardır. Bu sabitlerin değeri, kurulduğunda PHP tarafından belirlenir.

sabitler:

  • [CRYPT_STD_DES] - "./0-9A-Za-z" alfabesinden iki karakterli tuz içeren standart DES tabanlı karma. Salt'ta geçersiz karakterlerin kullanılması bu işlevin başarısız olmasına neden olur.
  • [CRYPT_EXT_DES] - Bir alt çizgi ve ardından 4 bayt yineleme sayısı ve 4 bayt tuzdan oluşan dokuz karakterlik bir salt ile genişletilmiş DES tabanlı karma. Bunlar yazdırılabilir karakterler olarak, karakter başına 6 bit, önce en az anlamlı karakter olacak şekilde kodlanmıştır. 0 ile 63 arasındaki değerler "./0-9A-Za-z" olarak kodlanmıştır. Salt'ta geçersiz karakterler kullanılması işlevin başarısız olmasına neden olur.
  • [CRYPT_MD5] - 1$'dan başlayan 12 karakterlik bir salt ile MD5 karma işlemi
  • [CRYPT_BLOWFISH] - 2a$, 2x$ veya 2y$ ile başlayan bir tuz, iki basamaklı bir maliyet parametresi "$" ve "./0-9A-Za-z" alfabesinden 22 karakterle Blowfish karma işlemi . Alfabenin dışındaki karakterlerin kullanılması, bu işlevin sıfır uzunlukta bir dize döndürmesine neden olur. "$" parametresi, temel alınan Blowfish-bashed karma algoritma ölçer için yineleme sayısının 2 tabanlı logaritmasıdır ve 04-31 aralığında olmalıdır. Bu aralığın dışındaki değerler, işlevin başarısız olmasına neden olur.
  • [CRYPT_SHA_256] - 5$'dan başlayan 16 karakterlik bir salt ile SHA-256 karma. Tuz dizisi "rounds=<N>$" ile başlıyorsa, Blowfish'teki maliyet parametresine çok benzer şekilde, karma döngüsünün kaç kez yürütülmesi gerektiğini belirtmek için N'nin sayısal değeri kullanılır. Varsayılan tur sayısı 5000'dir, minimum 1000 ve maksimum 999.999.999'dur. Bu aralığın dışındaki herhangi bir N seçimi, en yakın sınıra kesilecektir.
  • [CRYPT_SHA_512] - $6$ ile başlayan 16 karakterlik bir salt ile SHA-512 karma. Tuz dizisi "rounds=<N>$" ile başlıyorsa, Blowfish'teki maliyet parametresine çok benzer şekilde, karma döngüsünün kaç kez yürütülmesi gerektiğini belirtmek için N'nin sayısal değeri kullanılır. Varsayılan tur sayısı 5000'dir, minimum 1000 ve maksimum 999.999.999'dur. Bu aralığın dışındaki herhangi bir N seçimi, en yakın sınıra kesilecektir.

Bu işlevin birden çok algoritmayı desteklediği sistemlerde, yukarıdaki sabitler destekleniyorsa "1", değilse "0" olarak ayarlanır.

Not: Şifre çözme işlevi yoktur. crypt() işlevi tek yönlü bir algoritma kullanır.


Sözdizimi

crypt(str,salt)

Parametre Değerleri

Parameter Description
str Required. Specifies the string to be hashed
salt Optional. A salt string to base the hashing on


Teknik detaylar

Geri dönüş değeri: Kodlanmış dizeyi veya 13 karakterden kısa olan ve hata durumunda salt'tan farklı olacağı garanti edilen bir dize döndürür
PHP Sürümü: 4+
Değişiklik günlüğü: PHP 5.6.0 - Tuz atlanırsa bir E_NOTICE güvenlik uyarısı gösterir.
PHP 5.3.7 - 2x$ ve 2y$ Blowfish modları eklendi.
PHP 5.3.2 - SHA-256 ve SHA-512 eklendi. Geçersiz turlardaki Sabit Blowfish davranışı, DES'e geri dönmek yerine "başarısızlık" dizesini ("*0" veya "*1") döndürür.
PHP 5.3.0 - PHP artık MD5 crypt, Standard DES, Extended DES ve Blowfish algoritmaları için kendi uygulamasını içeriyor ve sistem bir veya daha fazla algoritmayı desteklemiyorsa bunu kullanacak.

Daha fazla örnek

Örnek

Bu örnekte farklı algoritmaları test edeceğiz:

<?php
// 2 character salt
if (CRYPT_STD_DES == 1)
{
echo "Standard DES: ".crypt('something','st')."\n<br>";
}
else
{
echo "Standard DES not supported.\n<br>";
}

// 4 character salt
if (CRYPT_EXT_DES == 1)
{
echo "Extended DES: ".crypt('something','_S4..some')."\n<br>";
}
else
{
echo "Extended DES not supported.\n<br>";
}

// 12 character salt starting with $1$
if (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt('something','$1$somethin$')."\n<br>";
}
else
{
echo "MD5 not supported.\n<br>";
}

// Salt starting with $2a$. The two digit cost parameter: 09. 22 characters
if (CRYPT_BLOWFISH == 1)
{
echo "Blowfish: ".crypt('something','$2a$09$anexamplestringforsalt$')."\n<br>";
}
else
{
echo "Blowfish DES not supported.\n<br>";
}

// 16 character salt starting with $5$. The default number of rounds is 5000.
if (CRYPT_SHA256 == 1)
{
echo "SHA-256: ".crypt('something','$5$rounds=5000$anexamplestringforsalt$')."\n<br>"; }
else
{
echo "SHA-256 not supported.\n<br>";
}

// 16 character salt starting with $6$. The default number of rounds is 5000.
if (CRYPT_SHA512 == 1)
{
echo "SHA-512: ".crypt('something','$6$rounds=5000$anexamplestringforsalt$');
}
else
{
echo "SHA-512 not supported.";
}
?>

Yukarıdaki kodun çıktısı (işletim sistemine bağlı olarak) olabilir:

Standard DES: stqAdD7zlbByI
Extended DES: _S4..someQXidlBpTUu6
MD5: $1$somethin$4NZKrUlY6r7K7.rdEOZ0w.
Blowfish: $2a$09$anexamplestringforsaleLouKejcjRlExmf1671qw3Khl49R3dfu
SHA-256: $5$rounds=5000$anexamplestringf$KIrctqsxo2wrPg5Ag/hs4jTi4PmoNKQUGWFXlVy9vu9
SHA-512: $6$rounds=5000$anexamplestringf$Oo0skOAdUFXkQxJpwzO05wgRHG0dhuaPBaOU/
oNbGpCEKlf/7oVM5wn6AN0w2vwUgA0O24oLzGQpp1XKI6LLQ0.


❮ PHP Dize Referansı