<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.strings.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'tr',
  ),
  'this' => 
  array (
    0 => 'function.crypt.php',
    1 => 'crypt',
    2 => 'Tek y&ouml;nl&uuml; dizge aşlama',
  ),
  'up' => 
  array (
    0 => 'ref.strings.php',
    1 => 'Dizge İşlevleri',
  ),
  'prev' => 
  array (
    0 => 'function.crc32.php',
    1 => 'crc32',
  ),
  'next' => 
  array (
    0 => 'function.echo.php',
    1 => 'echo',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'tr',
    'path' => 'reference/strings/functions/crypt.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.crypt" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">crypt</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">crypt</span> &mdash; <span class="dc-title">Tek yönlü dizge aşlama</span></p>

 </div>

 <div id="function.crypt-refsynopsisdiv">
  <div class="warning"><strong class="warning">Uyarı</strong>
<p class="simpara">Bu işlev ikil dosyalarla çalışırken dosya içeriğini
değiştirebilir.</p></div>
 </div>

 <div class="refsect1 description" id="refsect1-function.crypt-description">
  <h3 class="title">Açıklama</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>crypt</strong></span>(<span class="methodparam"><span class="attribute"><a href="class.sensitiveparameter.php">#[\SensitiveParameter]</a> </span><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$dizge</code></span>, <span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$tuz</code></span>): <span class="type"><a href="language.types.string.php" class="type string">string</a></span></div>

  <p class="para rdfs-comment">
   <span class="function"><strong>crypt()</strong></span> işlevi standart Unix <abbr class="abbrev">DES</abbr>
   şifreleme algoritmasını veya sistemdeki uygun algoritmalardan birini
   kullanarak <code class="parameter">dizge</code> dizgesinin aşlanmış sürümünü
   döndürür.
   <span class="function"><a href="function.password-verify.php" class="function">password_verify()</a></span> işlevi <span class="function"><strong>crypt()</strong></span>
   işlevi ile uyumludur. Bu bakımdan <span class="function"><strong>crypt()</strong></span> ile
   oluşturulan parola aşları <span class="function"><a href="function.password-verify.php" class="function">password_verify()</a></span> ile
   kullanılabilir.
  </p>
  <p class="para">
   PHP 8.0.0 öncesinde <code class="parameter">tuz</code> bağımsız değişkeni isteğe
   bağlıydı. Bununla birlikte, <span class="function"><strong>crypt()</strong></span> tuzsuz zayıf
   bir aş oluşturur ve bu durumda bir <strong><code><a href="errorfunc.constants.php#constant.e-notice">E_NOTICE</a></code></strong>
   seviyesinde bir hatası üretir. Daha iyi güvenlik için yeterince güçlü
   bir tuz belirlemek gerekir.
  </p>
  <p class="para">
   <span class="function"><a href="function.password-hash.php" class="function">password_hash()</a></span> güçlü bir aş kullanır, güçlü bir tuz
   üretir ve uygun turları otomatik olarak uygular.
   <span class="function"><a href="function.password-hash.php" class="function">password_hash()</a></span> basit bir <span class="function"><strong>crypt()</strong></span>
   sarmalayıcısıdır ve mevcut parola aşlarıyla uyumludur.
   <span class="function"><a href="function.password-hash.php" class="function">password_hash()</a></span> kullanmak daha güvenlidir ve önerilir.
  </p>
  <p class="para">
   Aş türü <code class="parameter">tuz</code> bağımsız değişkeniyle tetiklenir.
   <code class="parameter">tuz</code> 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 <strong><code><a href="string.constants.php#constant.crypt-salt-length">CRYPT_SALT_LENGTH</a></code></strong> adında bir
   sabit içerir.
  </p>
  <p class="para">
   Standart DES şifrelemesinde <span class="function"><strong>crypt()</strong></span> 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.
  </p>
  <p class="simpara">
   Desteklenen aş türleri:
  </p>
  <ul class="itemizedlist">
   <li class="listitem">
    <span class="simpara">
     <strong><code><a href="string.constants.php#constant.crypt-std-des">CRYPT_STD_DES</a></code></strong> - &quot;./0-9A-Za-z&quot; 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.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     <strong><code><a href="string.constants.php#constant.crypt-ext-des">CRYPT_EXT_DES</a></code></strong> - Dokuz karakterlik tuz kullanan
     gelişkin DES aşı. &quot;Tuz&quot;, 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. <code class="literal">0</code> ila <code class="literal">63</code>
     arasındaki değerler <code class="literal">./0-9A-Za-z</code> kalıbından kodlanmıştır.
     Tuzda geçersiz karakter kullanımı, işlevin başarısız olmasına sebep olur.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     <strong><code><a href="string.constants.php#constant.crypt-md5">CRYPT_MD5</a></code></strong> - $1$ ile başlayan on iki karakterlik MD5
     aşı.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     <strong><code><a href="string.constants.php#constant.crypt-blowfish">CRYPT_BLOWFISH</a></code></strong> - Tuzlu blowfish aşı şöyle oluşur:
     &quot;$2a$&quot;, &quot;$2x$&quot; veya &quot;$2y$&quot;, iki basamaklı bir bedel bağımsız değişkeni,
     &quot;$&quot; ve &quot;./0-9A-Za-z&quot; 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&#039;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. &quot;$2x$&quot; aşları görece zayıftır; &quot;$2a$&quot;
     aşları uyumludur ve bu zayıflığı azaltır. Yeni aşlar için &quot;$2y$&quot;
     kullanılmalıdır.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     <strong><code><a href="string.constants.php#constant.crypt-sha256">CRYPT_SHA256</a></code></strong> - SHA-256 aşı, $5$ ile başlayan
     onaltı karakterlik bir tuza sahiptir. Tuz dizesi &#039;rounds=&lt;N&gt;$&#039;
     ile başlıyorsa, N&#039;nin sayısal değeri, Blowfish&#039;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&#039;dir, en az 1000 ve en çok
     999.999.999&#039;dur. Bu aralığın dışında bir N seçilirse en yakın sınır
     değer kullanılır.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     <strong><code><a href="string.constants.php#constant.crypt-sha512">CRYPT_SHA512</a></code></strong> - SHA-512 aşı, $6$ ile başlayan
     onaltı karakterlik bir tuza sahiptir. Tuz dizesi &#039;rounds=&lt;N&gt;$&#039;
     ile başlıyorsa, N&#039;nin sayısal değeri, Blowfish&#039;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&#039;dir, en az 1000 ve en çok
     999.999.999&#039;dur. Bu aralığın dışında bir N seçilirse en yakın sınır
     değer kullanılır.
     </span>
    </li>
  </ul>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.crypt-parameters">
  <h3 class="title">Bağımsız Değişkenler</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">dizge</code></dt>
     <dd>
      <p class="para">
       Aşlanacak dizge.
      </p>
      <div class="caution"><strong class="caution">Dikkat</strong>
       <p class="para">
        <strong><code><a href="string.constants.php#constant.crypt-blowfish">CRYPT_BLOWFISH</a></code></strong> algoritmasının kullanımı,
        <code class="parameter">dizge</code> bağımsız değişkeninin 72 bayt uzunlukta
        kırpılmasına sebep olur.
       </p>
      </div>
     </dd>
    
    
     <dt><code class="parameter">tuz</code></dt>
     <dd>
      <p class="para">
       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.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.crypt-returnvalues">
  <h3 class="title">Dönen Değerler</h3>
  <p class="para">
   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.
  </p>
  <div class="warning"><strong class="warning">Uyarı</strong>
   <p class="simpara">
    Parolalar doğrulanırken, <span class="function"><strong>crypt()</strong></span> çı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&#039;de bu kullanım için
    <span class="function"><a href="function.hash-equals.php" class="function">hash_equals()</a></span> işlevi bulunur.
   </p>
  </div>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.crypt-changelog">
  <h3 class="title">Sürüm Bilgisi</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Sürüm: </th>
       <th>Açıklama</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.0.0</td>
       <td>
        <code class="parameter">tuz</code> bağımsız değişkeni artık isteğe bağlı değil.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.crypt-examples">
  <h3 class="title">Örnekler</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Örnek 1 - <span class="function"><strong>crypt()</strong></span> örnekleri</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$kullanıcı_girdisi </span><span style="color: #007700">= </span><span style="color: #DD0000">'rasmuslerdorf'</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$aşlıParola </span><span style="color: #007700">= </span><span style="color: #DD0000">'$6$rounds=1000000$NJy4rIPjpOaU$0ACEYGg/aKCY3v8O8AfyiO7CTfZQ8/W231Qfh2tRLmfdvFD6XfHk12u6hMr9cYIA4hnpjLNSTRtUwYr9km9Ij/'</span><span style="color: #007700">;<br /><br /></span><span style="color: #FF8000">// Mevcut crypt() aşını PHP dışı yazılımlarla uyumlu olacak şekilde doğrula.<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">hash_equals</span><span style="color: #007700">(</span><span style="color: #0000BB">$aşlıParola</span><span style="color: #007700">, </span><span style="color: #0000BB">crypt</span><span style="color: #007700">(</span><span style="color: #0000BB">$kullanıcı_girdisi</span><span style="color: #007700">, </span><span style="color: #0000BB">$aşlıParola</span><span style="color: #007700">))) {<br />   echo </span><span style="color: #DD0000">"Parola doğru!"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.crypt-notes">
  <h3 class="title">Notlar</h3>
  <blockquote class="note"><p><strong class="note">Bilginize</strong>: 
   <span class="simpara">
    <span class="function"><strong>crypt()</strong></span> tek yönlü algoritma kullandığından tekrar özgün
    dizgeyi elde etmeyi sağlayacak bir işlev yoktur.
   </span>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.crypt-seealso">
  <h3 class="title">Ayrıca Bakınız</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.hash-equals.php" class="function" rel="rdfs-seeAlso">hash_equals()</a> - Zamanlama saldırısı g&uuml;venli dize karşılaştırması</span></li>
    <li><span class="function"><a href="function.password-hash.php" class="function" rel="rdfs-seeAlso">password_hash()</a> - Parola aşı oluşturur</span></li>
    <li><a href="http://belgeler.gen.tr/man/man3/man3-crypt.html" class="link external">&raquo;&nbsp;
    crypt işlevinin Unix kılavuz sayfası</a></li>
   </ul>
  </p>
 </div>


</div><?php manual_footer($setup); ?>