- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,442
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 9 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,207
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
PHP'nin erken sürümleri, şifreleme/şifre çözme yetenekleri sağlayan mcrypt uzantısını içeriyordu. Bakım eksikliği nedeniyle mycrypt uzantısı kullanım dışı bırakıldı ve PHP 7.2 sürümünden itibaren kaldırıldı. PHP artık şifreleme ve şifre çözme özelliklerini desteklemek için kapsamlı bir işlevselliğe sahip OpenSSL kitaplığını içeriyor.
OpenSSL, AES (Advanced Encryption Standard) gibi çeşitli şifreleme algoritmalarını destekler. Desteklenen tüm algoritmalar openssl_get_cipher_methods() fonksiyonunu çağırarak elde edilebilir.
OpenSSL uzantısındaki iki önemli işlev şunlardır:
- openssl_encrypt() − Verileri şifreler
- openssl_decrypt() − Verileri şifresini çözer
openssl_encrypt() İşlevi
Bu fonksiyon, verilen veriyi verilen yöntem ve anahtarla şifreler ve ham veya base64 kodlu bir dize döndürür.openssl_encrypt(
string $data,
string $cipher_algo,
string $passphrase,
int $options = 0,
string $iv = "",
string &$tag = null,
string $aad = "",
int $tag_length = 16
): string|false
Fonksiyonun aşağıdaki parametreleri vardır:
| Sr.No | Parametre ve Açıklama |
|---|---|
| 1 | data Şifrelenecek düz metin mesaj verisi. |
| 2 | cipher_algo Şifreleme yöntemi. |
| 3 | passphrase Parola beklenenden daha kısaysa, NULL karakterlerle doldurulur; parola beklenenden daha uzunsa, kesilir. |
| 4 | options Seçenekler, OPENSSL_RAW_DATA ve OPENSSL_ZERO_PADDING bayraklarının bit düzeyinde bir ayrışmasıdır. |
| 5 | iv NULL Olmayan Bir Başlatma Vektörü. |
| 6 | tag AEAD şifreleme modu (GCM veya CCM) kullanıldığında referansla geçirilen kimlik doğrulama etiketi. |
| 7 | aad Ek olarak doğrulanmış veriler. |
| 8 | tag_length Kimlik doğrulama etiketinin uzunluğu. Değeri GCM modu için 4 ile 16 arasında olabilir. |
Fonksiyon başarılı olması durumunda şifrelenmiş dizgeyi, başarısız olması durumunda ise false değerini döndürür.
openssl_decrypt() İşlevi
Bu fonksiyon ham veya base64 kodlu bir dizeyi alır ve verilen bir yöntem ve anahtarı kullanarak şifresini çözer.openssl_decrypt(
string $data,
string $cipher_algo,
string $passphrase,
int $options = 0,
string $iv = "",
?string $tag = null,
string $aad = ""
): string|false
openssl_decrypt() fonksiyonu openssl_encrypt fonksiyonuyla aynı parametreleri kullanır.
Bu fonksiyon başarılı olması durumunda şifresi çözülmüş dizgeyi, başarısız olması durumunda ise yanlış değerini döndürür.
Örnek
Aşağıdaki örneğe bir göz atın:
PHP:
<?php
function sslencrypt($source, $algo, $key, $opt, $iv) {
$encstring = openssl_encrypt($source, $algo, $key, $opt, $iv);
return $encstring;
}
function ssldecrypt($encstring, $algo, $key, $opt, $iv) {
$decrstring = openssl_decrypt($encstring, $algo, $key, $opt, $iv);
return $decrstring;
}
// string to be encrypted
$source = "PHP: Hypertext Preprocessor";
// Display the original string
echo "Before encryption: " . $source . "\n";
$algo = "BF-CBC";
$opt=0;
$ivlength = openssl_cipher_iv_length($algo);
$iv = random_bytes($ivlength);
$key = "abcABC123!@#";
// Encryption process
$encstring = sslencrypt($source, $algo, $key, $opt, $iv);
// Display the encrypted string
echo "Encrypted String: " . $encstring . "\n";
// Decryption process
$decrstring = ssldecrypt($encstring, $algo, $key, $opt, $iv);
// Display the decrypted string
echo "Decrypted String: " . $decrstring;
?>
Aşağıdaki çıktıyı üretecektir:
Before encryption: PHP: Hypertext Preprocessor
Encrypted String:
Decrypted String:




