Bu modül; düz metni parola ile şifreleyip tek bir çıktı üretir ve aynı parola ile geri çözmenizi sağlar. Üretim tarafında iki yaklaşım sunar:
Desteklenen algoritmalar:
Not: Sunucudaki OpenSSL bazı cipher’ları kapatmış olabilir. Bu durumda arayüzde “Desteklenmiyor” olarak görünür.
Paket formatı, şifreli veriyi base64(JSON) şeklinde saklar. Bu JSON içinde algoritma, salt, iv, iterations ve (GCM’de) tag bulunur.
Bu tasarım; hem taşınabilir, hem debug edilebilir, hem de “neyle şifrelendi?” sorusuna cevap verir.
Salted__ formatı, OpenSSL’in passphrase modunda ürettiği klasik blob yapısıdır. Base64’ü genellikle U2FsdGVkX1… ile başlar (Salted__ header).
Birçok JavaScript kütüphanesi (özellikle “CryptoJS.AES.encrypt(text, passphrase)” tarzı kullanım) bu yapıyı üretir. Bu yüzden başka sayfadaki “aes” çıktısını çözmek istiyorsan bu format kritik.
Çünkü “aes” etiketi tek başına yeterli bilgi değildir. Şunlar aynı anda değişebilir:
Biz bu yüzden “Auto” çözme ile hem paket hem Salted__ deniyoruz.
PBKDF2, parolayı direkt anahtar yapmaz; onu maliyetli bir hesapla anahtara dönüştürür. Böylece brute-force saldırıları pahalılaşır.
Iterations arttıkça güvenlik artar ama işlem süresi de artar. Kurumsal pratikte 200.000 iyi bir başlangıçtır.
GCM, doğrulamalı şifrelemedir: veri değişirse çözme aşamasında hata verir. Bu, “şifre çözüldü ama bozuk mu?” gibi tehlikeli gri alanı kapatır.
CBC’de bu güvence yoktur; ayrıca bütünlük için ek bir MAC/HMAC katmanı gerekir.
CBC; eski sistemlerle uyumluluk gereken senaryolarda ve düzgün bir bütünlük katmanı tasarladığınızda kullanılabilir.
Bu modülde CBC pratik ve uyumluluk için vardır; yeni ve kritik kullanımda GCM daha sağlıklı.
Bu algoritmaların ana rolü “eski çıktıların okunmasıdır”.
Yeni üretim için bunları tercih etmek yerine AES-GCM seçmek daha doğru olur.
Auto mod:
Salted__ çözümünde “Algoritma ipucu” seçersen çözme daha hızlı ve deterministik olur.
Bu araç pratik kullanım içindir. Kurumsal ölçekte “secrets yönetimi” için ayrıca şunlar düşünülmelidir:
Salted__ çıktılar genellikle U2FsdGVkX1 ile başlar; bu hızlı bir teşhistir.
Bu modülün çıktısını “settings” modülüne entegre ederek type=encryped gibi bir ayar tipi yapabiliriz.
Ek olarak; kullanıcı bazlı key türetme, rol bazlı çözme yetkisi ve çözme işlemlerine audit log eklemek, kurumsal standardı ciddi yükseltir.