sha256 Özet Fonksiyonu Nedir?

Üyelerin kodlarında karşılaştıkları sorun hakkında yardım taleplerinin bulunduğu forum.
Cevapla
Kullanıcı avatarı
volkantasci
Site Admin
Mesajlar: 28
Kayıt: Cum May 10, 2019 7:26 pm
İletişim:

sha256 Özet Fonksiyonu Nedir?

Mesaj gönderen volkantasci » Cmt Ağu 03, 2019 1:41 pm

Öncelikle özet fonksiyonları ne işe yarar ve tek özet fonksiyonu sha256 mıdır, bunları cevaplayalım.

Özet Fonksiyonu
Özet fonksiyonları, dilediğiniz uzunlukta bir verinin özetini çıkartmak için kullanılır. Örneğin 100 sayfalık bir kitabı özet fonksiyonuna argüman olarak verirsek bize 16, 32, 64 veya 128.. gibi uzunluklarda özet bir değer verir. Yani 100 sayfa boyunca yazılan yazıları sadece 16 karakter gibi küçük bir veriye dönüştürür. Bu, 100 sayfalık verinin herhangi bir yerinde en ufak bir değişim gerçekleşirse ortaya çıkan özet (16 haneden oluşan veri) tamamiyle değişir.

Özet fonksiyonlarının en önemli özelliği tek yönlü olmalarıdır. Yani bir verinin özetini alabilir ancak özetinden yola çıkarak veriye ulaşamayız. Kısacası 16 hanelik özetten 100 sayfalık veriye geri dönüş yoktur.

Özet Fonksiyonu Nerede Kullanılır?
Örneğin bir SQL veritabanında kullanıcı giriş çıkış bilgilerinde yer alan parolaların gizlenmesinde kullanılır. Nasıl mı? Kullanıcı bilgilerinde yer alan 'password' kısmında anlamlı bir kelime yani parolanın aslı yer almaz. Parolanın özet fonksiyonundan geçirilmiş hali yer alır. Kullanıcı giriş yapmaya çalıştığı zaman kullanıcının girdiği parolanın özeti alınır ve veritabanındaki özet ile eşleşmesine bakılır. Eğer eşleşiyorsa giriş izni verilir.

Özet fonksiyonları bilgisayardan bilgisayara değişkenlik göstermez. Tüm dünyada aynı sonucu verir. Yani 'a' harfinin özet fonksiyonu olan sha256'dan geçirilmiş hali benim bilgisayarımda 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb' iken sizin bilgisayarınızda farklı olmaz.

Başka Özet Fonksiyonları Var Mı?
Evet, tek özet fonksiyonu sha256 değil. Bunun yanında sha1, sha224, md5 gibi başka özet fonksiyonları da vardır. Her biri farklı çıktılar üretmektedir.

Hash Fonksiyonları Yani Özet Fonksiyonlarının Python ile Kullanılması
Özet fonksiyonlarını programlama dilleri ile kullanmak mümkündür. Zaten bu amaçla varlar. Python ile kullanabilmemiz için hashlib isminde bir modül bulunur. Aşağıda örnek kullanımı gösterilen bir kod yer almakta.

Kod: Tümünü seç

import hashlib

def encrypt_string(hash_string):
    sha_signature = hashlib.sha256(hash_string.encode()).hexdigest()
    return sha_signature

print(encrypt_string("a"))
Yukarıdaki kodu çalıştırdığınızda biraz evvel söylediğim özeti alacaksınız. Çünkü dediğim gibi, özet fonksiyonları her yerde aynı sonucu üretir. hashlib modülü hakkında daha fazla detaya şuradan ulaşabilirsiniz: https://docs.python.org/3/library/hashlib.html
"Gerçeği aramak onu elde etmekten daha değerlidir" Albert Einstein
Cevapla