Bilgisayar programında bir dosya imzası, bir dosyanın başında bulunan benzersiz bir tanımlayıcı numaradır. Bu sayı, dosyanın türünü tanımlar ve asıl dosyadaki veriler hakkında bilgi verir. Bu bilgi, dosya uzantısı veya kullanıcı hatası dosyayı yanlış bir tür olarak yanlış tanımladığında hangi tür dosyanın okunmakta olduğunu belirlemek için kullanılabilir. Dosya imzası, dosyada depolanan orijinal verilerin hala bozulmamasını ve değiştirilmemesini sağlayan bilgiler de içerebilir. Bu öğelerin birleşimi, bir dosya imzasının, özellikle bilgisayar virüslerine karşı, önemli bir doğrulama biçimi olarak kullanılmasını sağlar.
Bir dosya imzası kavramı, bir dosya başlığına duyulan ihtiyaç nedeniyle, bir dosyanın başlangıcında bir bilginin dosyada nasıl depolandığının parametrelerini tanımlayan bir veri bloğu nedeniyle ortaya çıkmıştır. Başlık bilgisinin bir kısmı, başlangıçta oluşturulan dosya türünü tanımlayan bir bayt dizisidir. Bu, bir görüntü dosyası, belirli bir programdan bir belge veya bir dosya akışı bir istemci ile sunucu arasında bir iletişim yöntemi olarak kullanıldığında bir protokol türü olabilir. Dosya başlığı tanımlanmış bir standart kullanmıyor; bunun yerine, her farklı formata özel, yani bir program veya işletim sistemi bilinmeyen bir dosyanın türünü belirlemek için bir dosya imza veritabanına ihtiyaç duyuyor.
Gerçek dosya imzasına bazen sihirli bir sayı denir. Programlamada, bu, işgal ettiği veri alanında benzersiz bir değerdir. Dosya türünü belirlemek için bir dosya başlığına bakarken, bu, iki dosya imzasının aynı olmaması gerektiği anlamına gelir; bu, her biçim türünün farklı bir tanımlayıcı bayt dizisine sahip olmasını sağlar. Bu, dosyaların çevrimiçi olarak aktarılması ve yorumlanması ile ilgilenirken, bir dosyanın tanımlayıcı uzantısının keyfi ve dosya türü için bir tanımlayıcı olarak kullanılamayacağı durumlarda kullanılabilir.
Yalnızca dosya türüne ek olarak, bir dosya imzası da bir dosya üzerinde hata denetiminin yapılmasına izin veren bilgiler içerebilir, böylece tuttuğu verilerin eksiksiz olduğu onaylanabilir. Bu genellikle sağlama toplamı olarak bilinen bir işlev kullanılarak gerçekleştirilir. Bir sağlama toplamı, bir dosya aktarıldıktan veya yüklendikten sonra çoğaltılabilen matematiksel değerler oluşturmak için dosya verilerinin tam sayı değerlerini kullanan bir işlevdir. En temel biçimde, bu işlem dosyaya bir dizi bayt değerinin eklenmesini ve ardından programın aynı işlevi yerine getirmesi için dosyanın kodunu çözmesine izin vererek toplamı kaydetmeyi içerir. Kod çözme sırasında sonuçlar farklıysa, dosya bozulmuş olabilir ve veriler geçersiz olabilir veya kötü amaçlı amaçlar için değiştirilmiş olabilir.


