crypt Tek yönlü dizge aşlama ¬e.not-bin-safe; &reftitle.description; stringcrypt #[\SensitiveParameter]stringdizge stringtuz crypt işlevi standart Unix DES şifreleme algoritmasını veya sistemdeki uygun algoritmalardan birini kullanarak dizge dizgesinin aşlanmış sürümünü döndürür. password_verify işlevi crypt işlevi ile uyumludur. Bu bakımdan crypt ile oluşturulan parola aşları password_verify ile kullanılabilir. PHP 8.0.0 öncesinde tuz bağımsız değişkeni isteğe bağlıydı. Bununla birlikte, crypt tuzsuz zayıf bir aş oluşturur ve bu durumda bir E_NOTICE seviyesinde bir hatası üretir. Daha iyi güvenlik için yeterince güçlü bir tuz belirlemek gerekir. password_hash güçlü bir aş kullanır, güçlü bir tuz üretir ve uygun turları otomatik olarak uygular. password_hash basit bir crypt sarmalayıcısıdır ve mevcut parola aşlarıyla uyumludur. password_hash kullanmak daha güvenlidir ve önerilir. Aş türü tuz bağımsız değişkeniyle tetiklenir. tuz belirtilmemişse ya standart iki karakterlik (DES) ya da MD5 şifrelemesinin varlığına bağlı olarak oniki karakterlik tuz otomatik olarak üretilir. PHP, kullanılabilecek aşlar tarafından izin verilen geçerli en uzun tuzu belirleyen CRYPT_SALT_LENGTH adında bir sabit içerir. Standart DES şifrelemesinde crypt işlevi tuz olarak çıktının ilk iki karakterini döndürür. Ayrıca, dizgenin sadece ilk sekiz karakterini kullanır, bu nedenle ilk sekiz karakteri aynı olan sekiz karakterden daha uzun dizgeler için tuz aynı olduğu sürece hep aynı sonucu üretir. Desteklenen aş türleri: CRYPT_STD_DES - "./0-9A-Za-z" kalıbından iki karakter içeren standart DES aşı. Tuzda geçersiz karakter kullanımı işlevin başarısız olmasına sebep olur. CRYPT_EXT_DES - Dokuz karakterlik tuz kullanan gelişkin DES aşı. "Tuz", bir alt çizginin ardından 4 karakterlik yineleme sayısı ve 4 karakterlik tuzdan oluşan 9 karakterli bir dizedir. Bu 4 karakterlik dizelerin herbiri 24 bitle kodlanır ve en düşük değerli karakter baştadır. 0 ila 63 arasındaki değerler ./0-9A-Za-z kalıbından kodlanmıştır. Tuzda geçersiz karakter kullanımı, işlevin başarısız olmasına sebep olur. CRYPT_MD5 - $1$ ile başlayan on iki karakterlik MD5 aşı. CRYPT_BLOWFISH - Tuzlu blowfish aşı şöyle oluşur: "$2a$", "$2x$" veya "$2y$", iki basamaklı bir bedel bağımsız değişkeni, "$" ve "./0-9A-Za-z" kalıbından 22 karakter. Tuzda bu aralığın dışındaki karakterlerin kullanılması, işlevin sıfır uzunluklu bir dize döndürmesine sebep olur. İki basamaklı bedel bağımsız değişkeni, temel Blowfish tabanlı aşlama algoritması için yineleme sayımının 2'lik tabanda 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 sebep olur. "$2x$" aşları görece zayıftır; "$2a$" aşları uyumludur ve bu zayıflığı azaltır. Yeni aşlar için "$2y$" kullanılmalıdır. CRYPT_SHA256 - SHA-256 aşı, $5$ ile başlayan onaltı karakterlik bir tuza sahiptir. Tuz dizesi 'rounds=<N>$' ile başlıyorsa, N'nin sayısal değeri, Blowfish'teki bedel bağımsız değişkenine benzer şekilde, aşlama döngüsündeki tur sayısını belirtmek için kullanılır. Öntanımlı tur sayısı 5000'dir, en az 1000 ve en çok 999.999.999'dur. Bu aralığın dışında bir N seçilirse en yakın sınır değer kullanılır. CRYPT_SHA512 - SHA-512 aşı, $6$ ile başlayan onaltı karakterlik bir tuza sahiptir. Tuz dizesi 'rounds=<N>$' ile başlıyorsa, N'nin sayısal değeri, Blowfish'teki bedel bağımsız değişkenine benzer şekilde, aşlama döngüsündeki tur sayısını belirtmek için kullanılır. Öntanımlı tur sayısı 5000'dir, en az 1000 ve en çok 999.999.999'dur. Bu aralığın dışında bir N seçilirse en yakın sınır değer kullanılır. &reftitle.parameters; dizge Aşlanacak dizge. CRYPT_BLOWFISH algoritmasının kullanımı, dizge bağımsız değişkeninin 72 bayt uzunlukta kırpılmasına sebep olur. tuz Aşlamaye göre değişen tuz dizgesi. Belirtilmezse, davranış algoritma gerçeklenimi tarafından tanımlanır ve beklenmedik sonuçlara yol açabilir. &reftitle.returnvalues; Aşlama uygulanmış dizge veya 13 karakterden daha kısa olan ve başarısızlık durumunda tuzdan farklı olacağı garanti edilen bir dizge döndürür. Parolalar doğrulanırken, crypt çıktısını önceden bilinen aş ile karşılaştırmak için zamanlama saldırılarına açık olmayan bir dizge karşılaştırma işlevi kullanılmalıdır. PHP'de bu kullanım için hash_equals işlevi bulunur. &reftitle.changelog; &Version; &Description; 8.0.0 tuz bağımsız değişkeni artık isteğe bağlı değil. &reftitle.examples; - <function>crypt</function> örnekleri ]]> &reftitle.notes; crypt tek yönlü algoritma kullandığından tekrar özgün dizgeyi elde etmeyi sağlayacak bir işlev yoktur. &reftitle.seealso; hash_equals password_hash crypt işlevinin Unix kılavuz sayfası