/ Python / 👁 534 Okunma

Python ile HAVAL Hash Almak | HAVAL Nedir?

Python HAVAL encode konusunu merak edenler için ilk Türkçe kaynağımızı hazırlıyoruz. Bu içerik ile HAVAL hash alma işlemini 5 farklı bit uzunluğunda ve 3 farklı tur sayısından istediğinizle alabilirsiniz. Öyleyse HAVAL nedir ile başlayalım.

HAVAL, kriptografik bir hash alma fonksiyonudur. Sizinde muhtemelen kullandığınız MD5, SHA256 gibi hash fonksiyonlarının daha modern bir versiyonudur. HAVAL ile 128 bit, 160 bit, 192 bit, 224 bit ve 256 bit uzunluklarında hash alabilirsiniz. Ayrıca 3,4 ve 5 tur sayısından seçimlerinizi yaparak hashlerinizi çok daha güvenilir hale getirebilirsiniz.

Güvenlik konusuna gelecek olursak tur sayıları sayesinde hashinizin güvenilirliğini artırabilirsiniz ama şimdiye kadar gerçekleşen collison(çakışma) verilerine baktığımızda MD5 için en zayıf değer 2 üzeri 18 iken HAVAL (128-bit) için maalesef ki sadece ama sadece 2 üzeri 7 değerinde. Yani bir çakışmanın saptanması 2 üzeri 7 operasyonda bulunmuş durumda. Buna rağmen distinquishing attack değerlerinde HAVAL çok daha iyi durumlarda. Ayrıntılar için tıklayınız. Ayrıca bu çakışma dökümanı için tıklayınız.

Hız konusuna baktığımızda ise HAVAL ve MD5 kıyaslaması yaparsak şu tablo ile karşılaşırız:

  • HAVAL (3 tur) -> MD5 ten %60 daha hızlı,
  • HAVAL (4 tur) -> MD5 ten %15 daha hızlı,
  • HAVAL (5 tur) -> MD5 ile yaklaşık eşdeğer

Özetle daha güvenli sayılabilecek (bana göre, siz yinede bir araştırın), daha hızlı ve modern bir hash algoritması denemek isterseniz HAVAL'ı deneyebilirsiniz. Hatta biz hemen Python ile küçük bir örnek yapalım.

Öncelikle proje dosyamıza chilkat modülünü ekliyoruz. Bunun için aşağıdaki linkten ilgili dosyayı indiriniz.

Chilkat modülünü indirmek için Tıklayınız

Şimdi indirdiğiniz dosyayı dizine çıkarın ve bu dizinde komut istemini (cmd) çalıştırın. Ardından şu komutları uygulayınız;

python installChilkat.py
python testChilkat.py

Artık modülümüzü kurduğumuza göre kodlamamıza geçelim. Aşağıda metin isimli değişkene atadığımız stringi HAVAL 128-bit olarak 3 tur hashleyeceğiz. Geçelim kodlarımıza

import sys
import chilkat

crypt = chilkat.CkCrypt2()

metin = "ismet"

crypt.put_HashAlgorithm("haval")
crypt.put_HavalRounds(3)
crypt.put_KeyLength(128)
crypt.put_EncodingMode("hex")
hash = crypt.hashStringENC(s)

print("Haval: " + hash)

Yukarıdaki kodların çıktısı şu şekildedir:

Haval: F2FE0F9A9FD9128D8F1660124221F602

Sizde gerekli kurulumu yaptıktan sonra yukarıdaki kod örneğiyle kendi çalışmalarınızı yapabilirsiniz. Şimdiden hepinize iyi kodlamalar diliyorum.