Sercanca Çözümler..

Delphi – Checksum Hesaplama

Delphi – Checksum Hesaplama

Oluşturulmuş bir dosyanın içeriğinin değişip değiştirilmediğini anlamanın en garantili yolu hash bilgisini oluşturup kaydetmek ve daha sonra dosyanın hash bilgisi ile kayıt edilen hash bilgisini karşılaştırmaktır. Hash verisi dosyaların parmak izleri gibi düşünülebilir.

Günümüzde bilgisayar kullanımı arttıkça bununla paralel dosya paylaşımları da artmakta ve dosyalar transfer esnasında bozulabilmektedir. Dosyaların bozulup bozulmadığını anlamanın yolu olarak hash kaydı tutulmaktadır. MD5 ve SHA gibi güçlü algoritmalar ile şifrelenip kayıt edilen hash değeri dosya oluşturulduğunda yanında verilir.

5651 Loglama yasasına göre Loglama yapan bir yazılımı geliştirirken log dosyasının içeriğinin bir şekilde değiştirilmediğinden emin olmam gerekiyordu ki bu yasal bir zorunluluktur.

Delphi ile yaptığım bir çalışmayı başkalarında işine yarayacak şekilde program haline getirdim. Yazılım seçilen dosyanın MD5, SHA1, SHA256, SHA384, SHA512 Hash değerlerini hesaplamakta ve dilerseniz .hash uzantılı olarak kayıt etmektedir.

İçeriğin değiştirilmediğini test etmek için “Dosya-Karşılaştır” seçeneğini seçip açılan menüden dosya ve hash dosyasını gösterip kontrol et butonuna basılır ve sağ taraftaki yuvarlak şekiller Yeşil yada Kırmızı olarak geçerli veya geçersiz dosya bilgisi verir.

Uygulamada bilgi amaçlı MD5, SHA1, SHA256, SHA384, SHA512 hash değerleri hesaplanmaktadır. Uygulamada sadece birini hesaplayıp kullanmak yeterlidir. Eğer kendiniz düzenleyip kullanmak isterseniz kaynak kodlarını paylaşacağım.

Programı Delphi 10 Seattle ile geliştirdim. Standart kütüphaneler kullandım. Indy kütüphaneleri standartta geldiği için extra component yüklemenize gerek kalmaz.

Programın bir kaç ekran görüntüsüne bakalım.

Programı açtığınızda aşağıdaki şekilde ekran göreceksiniz. Sağ üst köşede bulunan “. . .” butona yada “Dosya->Aç” menüsüne tıkladığınızda seçmeniz için pencere açılacak ve dosyayı seçmenizi isteyecektir. Dosyayı seçtiğinizde program hesaplamaya başlayacak ve adım adım aşağıdaki değerleri size verecektir. Eğer dosya boyutu büyük ise değerleri hesaplaması zaman alabilir bilgilendirmek için aşağıda durum çubuğu ilerleyecektir. Yazı olarak ta size bilgi verecektir.

dosya-hesaplama

Dosyanın Hash hesaplarını kaydetmek ve daha sonra dosyanın geçerliliğini doğrulamak isterseniz “Dosya->Kaydet” komutuna tıklayın ve dosyayı istediğiniz yere kaydedin. Kayıt edilen dosya .hash uzantılı olacaktır.

checksum-kaydet

Kayıt edilen dosyayı notpad ile açtığınızda aşağıdaki şekilde bir içerik göreceksiniz.

checksum_icerik

Dosya içeriğine baktığınızda dosyayı oluşturan programın başlığı, oluşturma tarihi, hangi dosyaya ait olduğu ve dosya yolu, Hash bilgisi MD5, SHA1, SHA256, SHA384, SHA512 formatında yer almaktadır.

Eğer dosyanın içeriğinin değişip değiştirilmediğini teyit etmek isterseniz “Dosya->karşılaştır” seçeneğine tıklayın ve açılan pencerede dosya ve hash dosyasını seçerek “Kontrol Et” butonuna basın.

Eğer içerik değiştirilmedi ise aşağıdaki şekilde bir ekran ile karşılaşacaksınız.

karsilastir-gecerli

İçerik değiştirildi ise aşağıdaki ekran oluşacaktır.

karsilastir-gecersiz

Burada program dosyanın güncel hash hesaplarını yapıp daha önce kayıt edilen hash hesaplarını karşılaştırarak size bilgi vermektedir. Deneme için Data.txt dosyasına sadece bir harf ekledim ve dosya geçersiz bilgisini almış oldum. Tekrar eski haline getirdiğimde geçerli bilgisini aldım. Buda demek oluyor ki dosya içeriğinde orjinal haline göre bir farklılık olursa dosyamız geçersiz oluyor.

Dosyanın kayıt konumunu ve ismini değiştirdiğimde dosya geçerli oldu. Buda sadece içerik değiştiğinde geçersiz olduğunu gösterir.

Programı ve kaynak kodlarını indirmek için : https://github.com/sercanca/Delphi-Dosya-Check-sum-hesaplama

Başka bir yazıda görüşmek üzere

Sercan TEK

BİR YORUM YAZIN

This site uses Akismet to reduce spam. Learn how your comment data is processed.

ZİYARETÇİ YORUMLARI - 0 YORUM

Henüz yorum yapılmamış.

Yayımlanan tüm yazılar Sercan TEK tarafından yazılmaktadır. İzinsiz kullanımı yasaktır.