PHPerKaigi 2025

mcrypt_module_open

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

mcrypt_module_openKullanılacak kipi ve algoritma modülünü açar

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_module_open(
    string $algoritma,
    string $algoritma_dizini,
    string $kip,
    string $kip_dizini
): resource

Kullanılacak kipi ve algoritma modülünü açar. Algoritma doğrudan ismiyle belirtilebileceği gibi ("twofish" gibi), MCRYPT_şifre_adı sabitlerinden biri de belirtilebilir. Modülü kapatmak için mcrypt_module_close() kullanılır.

Bağımsız Değişkenler

algoritma

MCRYPT_şifreadı sabitlerinden biri veya dizge olarak algoritma adlarından biri.

algoritma_dizini

algorithm_dizini şifreleme modüllerinin yerlerini belirtmek için kullanılır. Bir dizin yerine boş bir dizge belirtirseniz mcrypt.algorithms_dir php.ini yönergelerinin değerleri kullanılır. Atanmamışsa libmcrypt derlenirken kullanılan öntanımlı dizinler kullanılır (genellikle /usr/local/lib/libmcrypt).

kip

MCRYPT_MODE_kipadı sabitlerinden biri veya şu dizelerden biri: "ecb", "cbc", "cfb", "ofb", "nofb" veya "stream".

kip_dizini

kip_dizini şifreleme modüllerinin yerlerini belirtmek için kullanılır. Bir dizin yerine boş bir dizge belirtirseniz mcrypt.modes_dir php.ini yönergelerinin değerleri kullanılır. Atanmamışsa libmcrypt derlenirken kullanılan öntanımlı dizinler kullanılır (genellikle /usr/local/lib/libmcrypt).

Dönen Değerler

Bir hata durumunda false yoksa bir şifreleme tanıtıcısı döndürür.

Örnekler

Örnek 1 - mcrypt_module_open() örnekleri

<?php
$şt
= mcrypt_module_open(MCRYPT_DES, '',
MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

$şt = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

Yukarıdaki örnekteki ilk satır öntanımlı dizindeki DES şifre modülünü ve /usr/lib/mcrypt-modes dizinindeki ECB kip modülünü açacaktır. İkinci örnekte şifre ve kip için isimleri kullanılmaktadır. Bu örnek sadece eklenti, libmcrypt 2.4.x veya 2.5.x desteğiyle derlenmişse çalışacaktır.

Örnek 2 - Şifreleme için mcrypt_module_open() kullanımı

<?php
/* Şifre modülünü açalım */
$şt = mcrypt_module_open('rijndael-256', '', 'ofb', '');

/* IV'yi oluşturup anahtar uzunluğunu belirleyelim.
Windows'ta bunun yerine MCRYPT_RAND kullanın */
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($şt), MCRYPT_DEV_RANDOM);
$ks = mcrypt_enc_get_key_size($şt);

/* Anahtarı oluşturalım */
/* (örneğe özel: bunun için MD5 iyi bir aş algoritması değil) */
$tuz = substr(hash('md5', 'epeyce gizli anahtar'), 0, $ks);

/* Şifreleme işlemini ilklendirelim */
mcrypt_generic_init($şt, $tuz, $iv);

/* Veriyi şifreleyelim */
$şifreli = mcrypt_generic($şt, 'Bu çok önemli bir veridir.');

/* Şifre tanıtıcısını sonlandıralım */
mcrypt_generic_deinit($şt);

/* Şifreleme modülünü şifre çözmek için ilklendirelim */
mcrypt_generic_init($şt, $tuz, $iv);

/* Verinin şifresini çözelim */
$şifresiz = mdecrypt_generic($şt, $şifreli);

/* Şifre çözme tanıtıcısını sonlandıralım ve modülü kapatalım */
mcrypt_generic_deinit($şt);
mcrypt_module_close($şt);

/* Dizgeyi gösterelim */
echo trim($şifresiz) . "\n";
?>

Ayrıca Bakınız

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top