mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0)

mcrypt_encryptSalt metin veriyi belirtilen bağımsız değişkenlerle şifreler

Uyarı

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.

Açıklama

mcrypt_encrypt(
    string$şifre,
    string$anahtar,
    string$veri,
    string$kip,
    string$iv = ?
): string|false

Veriyi şifreleyip döndürür.

Bağımsız Değişkenler

ş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.

Dönen Değerler

Şifrelenmiş veriyi bir dizge olarak döndürür, başarısızlık durumunda false döner.

Örnekler

Ö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.

Ayrıca Bakınız

To Top