BSD Sağlama Toplamı Hesaplama

BSD sum-16 sağlama toplamını hesaplamak için metin girin.

Sonuç

8401 (0x20D1)
5 bayt
BSD sum-16 (16 bit döndür-ve-topla sağlama toplamı)

Nasıl hesaplanır?

Araç metni bayt olarak okur (düz ASCII dışındaki her şey için UTF-8) ve 0'dan başlayan 16 bitlik bir çalışan değer tutar. Her bayt için iki işlem yapar: değeri bir bit sağa döndürür, yani en düşük bit en üste taşınır, s = (s >> 1) + ((s & 1) << 15), sonra bayt değerini ekler ve sonucu 16 bite keser, s = (s + bayt) & 0xFFFF. Son değer ondalık ve onaltılık olarak, bayt sayısıyla birlikte gösterilir. Denenen metinlerde Unix sum komutunun geleneksel BSD algoritmasıyla aynı sonucu verir. Boşluk ve satır sonları dahil her karakter sayılır; aksanlı harfler ya da emojiler birden çok bayttır. Boş metinde sonuç çıkmaz. Hızlı ve eski bir kontroldür, kasıtlı değişikliğe karşı koruma sağlamaz.

Örnek hesaplama

Hello metninin baytları 72, 101, 108, 108, 111'dir. 0'dan başlayın: döndürmek bir şey değiştirmez ve 72 eklenince 72 olur. Sonra 72 döndürülünce 36, 101 eklenince 137 olur. 137 tek olduğundan en düşük bit üste taşınır: 68 + 32768 = 32836, 108 eklenince 32944. 32944 döndürülünce 16472, 108 eklenince 16580. Son olarak 16580 döndürülünce 8290, 111 eklenince 8401 çıkar. Araç 5 bayt için 8401 (0x20D1) gösterir.

Bu örneği dene →

Sık yapılan hatalar

  • Bir boşluk ya da satır sonu eklemek veya atmak. Sondaki satır sonu bir bayt daha demektir ve sağlama toplamını büsbütün değiştirir: sonunda satır sonu olan Hello, düz Hello'dan farklı bir değer verir.
  • Formda yazılan metni bir dosyanın sağlama toplamıyla karşılaştırmak. Windows satır sonlu bir dosyada her satır sonu iki bayttır ve yazılan metinde satır sonları farklı olabilir; bayt sayıları tutmayabilir.
  • Büyük/küçük harfi görmezden gelmek. Hello ve hello farklı baytlardır ve farklı sağlama toplamı verir.
  • CRC ya da başka sağlama algoritmalarıyla aynı sayıyı beklemek. BSD sum-16, System V sum, CRC-32 ve MD5 farklı algoritmalardır ve farklı sonuç verir.
  • Bir dosyanın kasıtlı değiştirilmediğini kanıtlamak için kullanmak. Aynı değere sahip iki farklı metin üretmek kolaydır; kurcalamaya karşı bütünlük için SHA-256 kullanın.

Bu hesaplama hakkında

BSD sağlama toplamı (sum-16), geleneksel Unix sum komutunun uyguladığı klasik 16-bit sağlama toplamı algoritmasıdır; basit bir döndür-ve-ekle döngüsüyle hesaplanır: girdinin her baytı için, çalışan sağlama toplamı bir bit sağa döndürülür (alt bit üst bite taşınır) ve ardından o baytın değeri eklenir; sonuç boyunca 16 bit içinde tutulur.

Bu algoritma, CRC-32 gibi daha sonraki sağlama toplamlarından veya MD5 ya da SHA-256 gibi kriptografik özetlerden çok daha eski ve çok daha zayıftır — çakışmalar kolayca oluşturulabilir ve kasıtlı müdahaleye karşı hiçbir koruma sağlamaz — ancak Unix/Linux sum aracının varsayılan algoritması olarak, hızlı ve eski sistemlerle uyumlu dosya bütünlüğü kontrolleri için hâlâ kullanılmaktadır. Bu hesaplayıcı, herhangi bir girdi metninin BSD sum-16 değerini hem onluk hem onaltılık olarak hesaplar.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar

  • İlk yorumu siz yazın.

Popüler hesaplayıcılar

Tüm Hesaplayıcılar