Hash, Şifreleme ve Encoding: Karıştırmayın
Merhaba,
Güvenlik tartışmalarında en çok karışan üç kavram: hash, şifreleme (encryption) ve encoding. Bu rehberde farklarını, ne zaman hangisinin kullanılacağını ve sık yapılan hataları anlatıyoruz.
Konuda Anlatılacaklar
- Encoding nedir? (Base64, URL encoding)
- Hash nedir? (SHA-256, Blake2)
- Şifreleme nedir? (AES, RSA)
- Parola saklama: Hash + salt + KDF
- Pratik komutlar
1) Encoding
Amacı gizlilik değil, temsil değiştirmektir. Base64 çözen herkes orijinal veriyi görür.
echo -n "turkteam" | base64
echo "dHVya3RlYW0=" | base64 -d2) Hash
Tek yönlü özet. Aynı girdi -> aynı çıktı; girdiyi geri elde etmek tasarım gereği zor.
echo -n "turkteam" | sha256sum
# Dosya bütünlüğü
sha256sum rapor.pdf3) Şifreleme
Anahtarla geri dönüşümlü dönüşüm. Simetrik (AES) ve asimetrik (RSA/ECC) aileleri vardır.
# OpenSSL ile örnek (lab)
openssl rand -hex 16 > key.bin
echo -n "gizli lab notu" | openssl enc -aes-256-cbc -pbkdf2 -pass file:key.bin -out not.enc
openssl enc -d -aes-256-cbc -pbkdf2 -pass file:key.bin -in not.enc4) Parola Saklama
- Düz metin veya Base64: asla
- Tek başına SHA-256: yetersiz (GPU ile kırılır)
- Doğru yaklaşım: Argon2id / bcrypt / scrypt gibi yavaş KDF + benzersiz salt
5) Hızlı Karar Tablosu
- Veriyi geri okumam gerekiyor mu? -> Şifreleme
- Bütünlük / parmak izi mi? -> Hash (HMAC ile daha iyisi)
- Sadece taşıma formatı mı? -> Encoding
- Kullanıcı parolası mı? -> KDF (Argon2id)
Kaynakça
- OWASP Password Storage Cheat Sheet
- OpenSSL Documentation
- OWASP Top 10 2025 - A04 Cryptographic Failures
Görsel: TurkTeam özgün kapak görseli.
