B 1
berione65
sen272 1
sen272
Mt2Hizmet 1
Mt2Hizmet
C 1
chengdu
xranzei 1
xranzei
zendor2 1
zendor2
Bvural41 1
Bvural41
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP – Şifreleme

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
VIP Üye
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
Ticaret - 0%
0   0   0

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!

1_9FFlqAwcdt1EsOF96K5OlA.jpg


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.NoParametre ve Açıklama
1data
Şifrelenecek düz metin mesaj verisi.
2cipher_algo
Şifreleme yöntemi.
3passphrase
Parola beklenenden daha kısaysa, NULL karakterlerle doldurulur; parola beklenenden daha uzunsa, kesilir.
4options
Seçenekler, OPENSSL_RAW_DATA ve OPENSSL_ZERO_PADDING bayraklarının bit düzeyinde bir ayrışmasıdır.
5iv
NULL Olmayan Bir Başlatma Vektörü.
6tag
AEAD şifreleme modu (GCM veya CCM) kullanıldığında referansla geçirilen kimlik doğrulama etiketi.
7aad
Ek olarak doğrulanmış veriler.
8tag_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:
 

Bire bir çeviri, reddedildi.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst