KKUT Docs

Kripto Kütüphanesi

Ş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 d…

This article is currently available in Turkish. Its English translation is being prepared.

Ş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

Bu bileşen KUT ile birlikte gelir; ayrıca kurulum gerektirmez.

↓ Paket KUT ile birlikte gelir.

Sürücüler

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

openssl Ön tanımlı ayarlıdır.

Yöntemler

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

encrypt(string $data, mixed $settings = []) : string
decrypt(string $data, mixed $settings = []) : string
keygen(int $length = 8): string
driver(string $driver) : this

Encrypt

Düz metinleri verilen parametrelerle şifreler.

Parametreler

string $data Veri.
mixed $settings Ayarlar. Bu parametre KUT 1.0 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 = Kut\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
[string $settings]

2. parametre string olarak da kullanılabilir.

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

echo $encrypt;
T25yTWZoNTkyUWd0NzhSWC8rRXdvZz09

Decrypt

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

Parametreler

string $data Veri.
mixed $settings Ayarlar. Bu parametre KUT 1.0 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 = Kut\Project::key()
Şifre anahtarı.

Kullanımı

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

2. parametre string olarak da kullanılabilir.

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

echo $encrypt;
Example Data


 

Encrypt

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

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

Kaldırılan Sürücüler KUT 1.0’da desteklenir

mhash, phash ve hash sürücüleri kaldırıldı.

Parametreler

string $driver Sürücü adı.
Seçenekler openssl
return string

Kullanımı

output(Crypto::driver('openssl')->keygen());
DgNgz0KO
KUT 1.0

Sürümlü ve bütünlük korumalı şifreli veri

OpenSSL sürücüsü her normal şifreleme işleminde random_bytes() ile yeni bir başlangıç vektörü üretir. Aynı açık metin aynı anahtarla şifrelense bile farklı çıktı oluşur. Vektör ve şifreli gövde HMAC-SHA256 ile imzalanır; değiştirilmiş içerik çözülmeden reddedilir.

Biçim sürümlüdür. Önceki sabit vektörlü kayıtlar ve daha önce üretilen imzasız kayıtlar okunmaya devam eder; yeni kayıtlar güncel imzalı biçimde yazılır.

Sabit çıktı gereken adresler

$token = Crypto::encrypt($data, ["fixed" => true]);

fixed seçeneği, şifreli sonucun URL veya dosya adresi gibi tekrarlanabilir olması gereken yerler içindir. Gizli verilerin genel saklanmasında kullanılmamalıdır.

KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.