SipHash-2-4 Hesaplayıcı
SipHash-2-4 özetini hesaplamak için 32 haneli hex anahtar ve bir mesaj girin.
Sonuç
Nasıl hesaplanır?
Araç, mesajınızın UTF-8 baytları üzerinde SipHash-2-4 çalıştırır. Anahtar tam 32 onaltılık karakter (16 bayt) olmalıdır; büyük ya da küçük harf ve baştaki/sondaki boşluklar kabul edilir, geri gösterilirken küçük harfe çevrilir. Mesaj 8 baytlık little-endian bloklara bölünür, her blok 2 turla duruma karıştırılır, son blok mesaj uzunluğunu taşır ve ardından 4 sonlandırma turu gelir. 64 bitlik sonuç, en anlamlı bayt önce olacak şekilde 16 onaltılık karakterle yazılır. Anahtar alanı boşsa 000102…0e0f kullanılır; mesaj parametresi hiç gönderilmemişse abc alınır, boş mesaj ise sıfır bayt olarak özetlenir. Uzunluğu yanlış ya da onaltılık olmayan karakter içeren anahtar sonuç vermez. Gösterilen uzunluk karakter değil bayt sayısıdır.
Örnek hesaplama
000102030405060708090a0b0c0d0e0f anahtarını ve hello world mesajını kullanın. Mesaj 11 ASCII karakterdir, yani 11 bayttır: bir tam 8 baytlık blok ve 3 baytlık artık; son blok ayrıca 11 uzunluğunu da kodlar. Sıkıştırma ve sonlandırma turlarından sonra özet ed5159c956cd5602 olur. Mesajın tek bir karakterini ya da anahtarın tek bir hanesini değiştirirseniz tamamen farklı bir 16 karakterlik değer çıkar.
Sık yapılan hatalar
- 32 onaltılık karakterden kısa ya da uzun anahtar kullanmak. 16 baytlık anahtar gerekir; parola ya da 64 karakterlik anahtar sonuç vermez.
- Anahtarı metin sanmak. Onaltılık haneler olarak okunur;
passworddizesi geçersizdir ve 00 tek bir sıfır baytı demektir. - Özeti bayt sırasını denkleştirmeden başka araçlarla kıyaslamak. Bu araç 64 bitlik değeri en anlamlı bayt önce yazar; bazı kütüphaneler 8 baytı bellek sırasıyla yazar ve ters görünür.
- SipHash-2-4'ü genel amaçlı parola ya da dosya özeti olarak kullanmak. Hash tabloları ve kısa girdilerin kimlik doğrulaması için anahtarlı bir özettir; 64 bitlik çıktı çarpışma direnci için kısadır.
- ASCII dışı karakterlerin birkaç bayt tuttuğunu unutmak.
cafémetni 5 bayttır ve uzunluk satırı bunu yansıtır.
Bu hesaplama hakkında
SipHash-2-4, Jean-Philippe Aumasson ve Daniel J. Bernstein tarafından özellikle hash tablolarını hash-flooding hizmet reddi saldırılarına karşı korumak için tasarlanmış, hızlı ve anahtarlı bir sözde rastgele fonksiyondur — bu saldırı tekniğinde bir saldırgan, bir hash tablosunun kovalarında çarpışacak şekilde bilinçli olarak seçilmiş girdiler gönderir, aramaları O(1)'den O(n)'ye düşürerek sunucuyu tıkar. “2-4” adı, tur yapısını ifade eder: mesaj bloğu başına 2 sıkıştırma turu ve 4 sonlandırma turu.
16 baytlık (128 bitlik) gizli bir anahtar ve bir mesaj verildiğinde, hesaplanması ucuz ama anahtar olmadan tahmin edilmesi zor olan 64 bitlik bir özet üretir. Python, Rust, Ruby ve Redis gibi diller ve sistemler bu yüzden dizeler ve sözlük/hash-map anahtarları için varsayılan hash fonksiyonu olarak dahili olarak SipHash kullanır. Bu hesaplayıcı, verilen bir hex anahtarla herhangi bir metnin SipHash-2-4 özetini hesaplar; uygulamaları doğrulayan veya algoritmanın nasıl davrandığını keşfeden geliştiriciler için kullanışlıdır.
Bu faydalı oldu mu?
En fazla 3 tepki seçebilirsiniz.
Popüler hesaplayıcılar
Kredi Hesaplama
Aylık taksit, toplam faiz ve ödeme planını hesaplayın.
Yüzde Hesaplama
Yüzde değişim, indirim ve oran hesaplamaları.
İndirim Hesaplama
İndirimli fiyatı, kazancı ve indirim tutarını hesaplayın.
Vücut Kitle Endeksi (VKİ)
Boy ve kiloya göre vücut kitle endeksini hesaplayın.
Yaş Hesaplama
Doğum tarihinden bugüne tam yıl, ay ve gün cinsinden yaşınızı hesaplayın.
Bileşik Faiz Hesaplama
Ana para, faiz oranı ve süreye göre bileşik faizle nihai tutarı hesaplayın.
Tüm Hesaplayıcılar
- Kredi Hesaplama
- Kar Hesaplama
- İndirim Hesaplama
- Vücut Kitle Endeksi (VKİ)
- Yüzde Hesaplama
- İdeal Kilo Hesaplama
- Yaş Hesaplama
- Gebelik Hesaplama
- Bileşik Faiz Hesaplama
- Bazal Metabolizma (BMR) Hesaplama
- Bahşiş Hesaplama
- Yakıt Maliyeti Hesaplama
- Tarih Farkı Hesaplama
- Uyku Döngüsü Hesaplama
- Günlük Su İhtiyacı Hesaplama
- Basit Faiz Hesaplama
- Kalp Atış Hızı Bölgeleri Hesaplama
- Koşu Temposu Hesaplama
- Evcil Hayvan Yaşı Hesaplama
- Kalori Yakım Hesaplama
- Makro Besin Dağılımı Hesaplama
- TDEE (Toplam Günlük Enerji İhtiyacı) Hesaplama
- Bel-Kalça Oranı Hesaplama
- Takdir ve Teşekkür Belgesi Hesaplama
- Tek Tekrar Maksimum (1RM) Hesaplama
- Yumurtlama (Ovülasyon) Hesaplama
- Elektrik Maliyeti Hesaplama
- Birim Fiyat Hesaplama
- Tasarruf Hedefi Hesaplama
- Başabaş Noktası Hesaplama
- Boya Hesaplama
- Vize-Final Ortalama Hesaplama
- İş Günü Hesaplama
- Saat Farkı (Süre) Hesaplama
- Yakıt Tüketimi Hesaplama
- Sıcaklık Birimi Çevirici
- Fayans (Seramik) Hesaplama
- En-Boy Oranı Hesaplama
- Roma Rakamı Çevirici
- Hedef Kilo Süresi Hesaplama
- Maaş Çevirici (Saatlik-Yıllık)
- Kredi Kartı Doğrulama (Luhn)
- Vücut Yüzey Alanı (BSA) Hesaplama
- Hissedilen Sıcaklık Hesaplama
- Ohm Kanunu Hesaplama
- PPI (Piksel Yoğunluğu) Hesaplama
- Molar Kütle Hesaplama
- Burç Hesaplama (Batı + Çin)
- IBAN Doğrulama
- Ayakkabı Numarası Dönüştürücü
- Ülke Bilgisi (Telefon Kodu) Sorgulama
- Saat Dilimi Farkı (Dünya Saati)
- CAGR (Bileşik Yıllık Büyüme) Hesaplama
- 72 Kuralı Hesaplama
- Kandaki Alkol (Promil) Hesaplama
- Yağsız Vücut Kütlesi (LBM) Hesaplama
- Pisagor Teoremi Hesaplama
- Hız Birimi Dönüştürücü
- İndirme Süresi Hesaplama
- Tarih Hesaplama (Gün Ekle/Çıkar)
Hesaplayıcı bulunamadı
Yorumlar (1)
Herhangi bir SipHash-2-4 uygulamasını denetlemenin kolay yolu, 000102030405060708090a0b0c0d0e0f anahtarıyla boş mesajı denemektir; burada 726fdb47dd0e0e31 çıkmalıdır. Referans test vektörleri çoğu zaman sekiz baytı bellek sırasıyla, yani 31 0e 0e dd 47 db 6f 72 diye listeler; bu aynı değerin tersten okunmuş hâlidir. Kodunuz farklı sonuç veriyorsa uzun girdilere geçmeden önce bu durumu karşılaştırın. Hangi dil ya da kütüphaneyle karşılaştırıyorsunuz?