Kripto Kütüphanesi


    × Bunları biliyor muydunuz?
"Settings/CDNLinks.php yapılandırma dosyası altında yer alan 'script' ve 'style' dizilerine tanımlayacağınız linkleri Import::script() ve Import::style() kütüphaneleri ile birlikte kullanabilirsiniz."


Şifreleme işlevlerini yerine getiren sınıftır. Şifrelemelerde kullanılan vektör ve anahtarlar için varsayılan olarak Config/CryptoGraphy.php dosyasında yer alan projectKey parametresindeki değerden yararlanılmıştır. Kendi vektör ve anahtar değerlerinizi belirtmeniz durumunda kişisel yapılandırmanız geçerli olacaktır.

 

 

# Kurulum


ZN dağıtımları için kurulum gerekmez.

↓ composer require znframework/package-cryptography

 

 

# Sürücüler


Aşağıda bu kütüphane ile ilgili kullanılabilir sürücüler listelenmiştir.

3.0.0 openssl Ön tanımlı ayarlıdır.
3.0.0 - 6.0.35 mcrypt PHP 7.2 sürümünde kaldırılmıştır. 
3.0.0 hash Tek yönlü şifreleme için kullanılır. decrypt() yöntemini desteklemez.
3.0.0 mhash Tek yönlü şifreleme için kullanılır. decrypt() yöntemini desteklemez.
3.0.0 phash decrypt() ve encrypt() yöntemlerini desteklemez.

 

 

# Yöntemler


Aşağıda sürücülere göre ortak yöntemler yer almaktadır.

Ortak
3.0.0 String encrypt(String $data, Mixed $settings = [])
3.0.0 String decrypt(String $data, Mixed $settings = [])
3.0.0 String keygen(Int $length = 8)
3.0.0 This driver(String $driver)

 

 

# Encrypt (ZN >= 3.0.0)


Düz metinleri verilen parametrelerle şifreler.

Parametreler

String $data Veri.
String | Array
$settings Ayarlar. Bu parametre 6.0.36 sürümü itibari ile string türde de kullanılabilmektedir.
$cipher = 'aes-128' Şifreleme türü. Cipher olarak openssl_get_cipher_methods() dizisinde yer alan değerler kullanılabilir.
$mode = 'cbc' Şifreleme modu.
$key = ZN\Project::key()
Şifre anahtarı. Ön tanımlı olarak Config/Projetcs.php dosyasında yer alan key değeri kabul edilmektedir.

Kullanımı

$encrypt = Crypto::encrypt('Example Data',
[
    'cipher' => 'aes-256',
    'mode'   => 'cbc',
    'key'    => 'Your Project Key'
]);

echo $encrypt;
Q2tYRDB1UTJRM0dEcGhFWHYrZVZlUT09
6.0.36 Güncellemesi

Bu sürüm itibari ile key ön tanımlı kalacaksa 2. parametre string olarakta kullanılabilir.

$encrypt = Crypto::encrypt('Example Data', 'aes-256-cbc');

echo $encrypt;
T25yTWZoNTkyUWd0NzhSWC8rRXdvZz09

 

 

# Decrypt (ZN >= 3.0.0)


Şifrelenen veriyi çözmek için kullanılır.

Parametreler

String $data Veri.
String | Array
$settings Ayarlar. Bu parametre 6.0.36 sürümü itibari ile string türde de kullanılabilmektedir.
$cipher = 'aes-128' Şifreleme türü. Cipher olarak openssl_get_cipher_methods() dizisinde yer alan değerler kullanılabilir.
$mode = 'cbc' Şifreleme modu.
$key = ZN\Project::key()
Şifre anahtarı.

Kullanımı

echo Crypto::decrypt('Q2tYRDB1UTJRM0dEcGhFWHYrZVZlUT09',
[
   'cipher' => 'aes-256',
   'mode'   => 'cbc', 
   'key'    => 'Your Project Key'
]);
Example Data
6.0.36 Güncellemesi

Bu sürüm itibari ile key ön tanımlı kalacaksa 2. parametre string olarakta kullanılabilir.

$encrypt = Crypto::decrypt('T25yTWZoNTkyUWd0NzhSWC8rRXdvZz09', 'aes-256-cbc');

echo $encrypt;
Example Data


 

# Encrypt (ZN >= 3.0.0)


Belirli uzunlukta şifre oluşturmak için kullanılır.

Parametreler

Int $length = 8 Şifre uzunluğu.
Return String

Kullanımı

echo Crypto::keygen(7);
���� �c 

 

 

# Driver (ZN >= 3.0.0)


Şifreleme sürücüsünü değiştirmek için kullanılır.

Parametreler

String $driver Sürücü adı.
openssl, hash, phash, mhash
Return String

Kullanımı

\Output::writeLine( Crypto::keygen() );
\Output::writeLine( Crypto::driver('openssl')->keygen() );
\Output::writeLine( Crypto::driver('phash')->keygen() );
]�M�2��
�7��n
DgNgz0KO