array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.mcrypt-encrypt.php', 1 => 'mcrypt_encrypt', ), 'up' => array ( 0 => 'ref.mcrypt.php', 1 => 'Mcrypt İşlevleri', ), 'prev' => array ( 0 => 'function.mcrypt-enc-self-test.php', 1 => 'mcrypt_enc_self_test', ), 'next' => array ( 0 => 'function.mcrypt-generic-deinit.php', 1 => 'mcrypt_generic_deinit', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/mcrypt/functions/mcrypt-encrypt.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)
mcrypt_encrypt — Salt metin veriyi belirtilen bağımsız değişkenlerle şifreler
Bu işlevin kullanımı PHP 7.1.0 itibariyle ÖNERİLMEMEKTE olup PHP 7.2.0'da tamamen KALDIRILMIŞTIR. Bu işleve kesinlikle güvenilmemelidir.
$şifre
,$anahtar
,$veri
,$kip
,$iv
= ?Veriyi şifreleyip döndürür.
şifre
MCRYPT_şifreadı
sabitlerinden biri veya dizge olarak
algoritma adlarından biri.
anahtar
Veriyi şifreleyecek anahtar. Aanhtar şifre tarafından desteklenmiyorsa
işlev bir uyarı çıktır ve false
döndürür.
Bir dizgeden bir anahtar oluşturmak için hash işlevlerini kullanmanız önerilir.
veri
Belirtilen şifre
ve kip
ile şifrelenecek veri. Veri uzunluğu desteklenen küme boyunun
katlarından farklıysa eksik kısım '\0
' ile
doldurulur.
Dönen şifreli veri girilen veriden daha uzun olabilir.
kip
MCRYPT_MODE_kipadı
sabitlerinden biri veya şu dizelerden
biri: "ecb", "cbc", "cfb", "ofb", "nofb" veya "stream".
iv
CBC, CFB, OFB kiplerinde ve STREAM kipinde bazı algoritmalarda ilklendirme
için kullanılır. Sağlanan ilklendirme vektörü (IV) boyutu zincirleme kipi
tarafınan desteklenmiyorsa veya bir IV sağlanmamışsa, fakat zincirleme kipi
için bir IV gerekliyse, işlev bir uyarı çıktılar ve false
döndürür.
Şifrelenmiş veriyi bir dizge olarak döndürür, başarısızlık durumunda false
döner.
Örnek 1 - mcrypt_encrypt() örneği
<?php
# --- ENCRYPTION ---
# the key should be random binary, use scrypt, bcrypt or PBKDF2 to
# convert a string into a key
# key is specified using hexadecimal
$key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");
# show key size use either 16, 24 or 32 byte keys for AES-128, 192
# and 256 respectively
$key_size = strlen($key);
echo "Key size: " . $key_size . "\n";
$plaintext = "This string was AES-256 / CBC / ZeroBytePadding encrypted.";
# create a random IV to use with CBC encoding
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
# creates a cipher text compatible with AES (Rijndael block size = 128)
# to keep the text confidential
# only suitable for encoded input that never ends with value 00h
# (because of default zero padding)
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
$plaintext, MCRYPT_MODE_CBC, $iv);
# prepend the IV for it to be available for decryption
$ciphertext = $iv . $ciphertext;
# encode the resulting cipher text so it can be represented by a string
$ciphertext_base64 = base64_encode($ciphertext);
echo $ciphertext_base64 . "\n";
# === WARNING ===
# Resulting cipher text has no integrity or authenticity added
# and is not protected against padding oracle attacks.
# --- DECRYPTION ---
$ciphertext_dec = base64_decode($ciphertext_base64);
# retrieves the IV, iv_size should be created using mcrypt_get_iv_size()
$iv_dec = substr($ciphertext_dec, 0, $iv_size);
# retrieves the cipher text (everything except the $iv_size in the front)
$ciphertext_dec = substr($ciphertext_dec, $iv_size);
# may remove 00h valued characters from end of plain text
$plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
$ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);
echo $plaintext_dec . "\n";
?>
Yukarıdaki örneğin çıktısı:
Key size: 32 ENJW8mS2KaJoNB5E5CoSAAu0xARgsR1bdzFWpEn+poYw45q+73az5kYi4j+0haevext1dGrcW8Qi59txfCBV8BBj3bzRP3dFCp3CPQSJ8eU= This string was AES-256 / CBC / ZeroBytePadding encrypted.