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…

Ş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.