SHA1 Hash Oluşturucu

SHA-1, 160-bit (40 onaltılık karakter) bir özet üretir ve git nesne kimliklerinin, eski SVN sağlama toplamlarının ve 2017 öncesi bir yığın imzalama sisteminin arkasındaki hash’tir. Herhangi bir metin yapıştırın, deterministik hash’i alın. Baştan büyük bir uyarı: SHA-1 çakışma direnci için kırıktır (SHAttered, 2017) ve yeni imzalar ya da parola depolama için kullanılmamalıdır, yalnızca düşmanca olmayan bütünlük kontrolleri için uygundur.

Bir SHA-1 hash'i nasıl hesaplanır

  1. 1

    Girdinizi yapıştırın

    Herhangi bir metin: bir dize, metne dökülmüş tam bir dosya ya da bir onaltılık dizi.

  2. 2

    Kodlama UTF-8'dir

    Girdi, OpenSSL, Python hashlib ve Node crypto'daki varsayılanla eşleşerek hashlemeden önce UTF-8 bayt olarak serileştirilir.

  3. 3

    Merkle-Damgård döngüsü çalışır

    Mesaj doldurulur, 512-bit bloklara bölünür ve blok başına 80 tur SHA-1 sıkıştırma fonksiyonundan geçirilir.

  4. 4

    40 karakterlik onaltılık özeti kopyalayın

    Çıktı her zaman 40 küçük harf onaltılık karakterdir (160 bit).

Bir bakışta SHA-1

Özellik Değer
Çıktı boyutu 160 bit / 40 onaltılık karakter
Blok boyutu 512 bit
Tur 80
Çakışma direnci Kırık (2^63 seçilmiş-önek)
Önimge direnci Sağlam (yazım anında)
Hız Tek modern çekirdekte ~500 MB/s

SHA-1’in hâlâ kabul edilebilir olduğu yerler

  • Git. Commit ve blob kimlikleri SHA-1’dir (SHA-256 katılımlı olarak). Çakışmalar geçmişi karıştırır ama yazarın anahtarı olmadan bir commit’i taklit edemez.
  • Güvenlik dışı yineleme giderme. Tehdit modelinin bir saldırgan içermediği nesne deposu içerik adresleme.
  • Geriye dönük uyumlu API’ler. GitHub’ın X-Hub-Signature (v1) gibi eski webhook’lar.
  • Adli tanımlayıcılar. Bir arşiv boyunca yineleme giderme için dosya parmak izi.

SHA-1’in kabul edilebilir olmadığı yerler

  • TLS sertifikaları. Tarayıcılar 2017’den itibaren SHA-1 sertifikalarına güvenmeyi bıraktı.
  • Kod imzalama. Microsoft, Apple ve Mozilla SHA-1 imzalarını reddetti.
  • Parola hashleme. Argon2id ya da bcrypt kullanın.
  • Yeni bir tasarımda HMAC. En azından HMAC-SHA-256 kullanın.

Çıktıyı doğrulamak isterseniz

Herhangi bir Unix sisteminde echo -n "hello" | sha1sum ile karşılaştırın. hello dizesinin hash’i aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d’dir.

Sık Sorulan Sorular

Matematiksel olarak değil. Yaygın kısa girdiler için önceden hesaplanmış bir sözlüğe sahip bir saldırgan onları anında tanımlayabilir; bu yüzden tek başına hash’ler parolaları korumaz. 40 karakterlik rastgele bir dize için pratik bir tersine çevirme yoktur.

Hayır. SHA (Secure Hash Algorithm) NIST tarafından yayınlanan bir ailedir. SHA-1, 1995’ten gelen 160-bit algoritmadır. SHA-2, SHA-224, SHA-256, SHA-384 ve SHA-512’yi içeren ailedir.

On yılı aşkın geçmişle uyumluluk için. 2017’den beri git, seçilmiş-önek çakışmalarına (SHA-1DC) karşı sertleşir ve yeni projeler için SHA-256 depolarını destekler.

Bizim sunucumuzda. Metniniz şifreli bir bağlantı üzerinden gönderilir, standart SHA-1 fonksiyonuyla hash’lenir ve 40 karakterlik özet geri döndürülür. Gönderdiğiniz metni saklamayız. SHA-1 tek yönlü olduğundan, özetin kendisi tekrar girdinize dönüştürülemez.

İlgili Araçlar

Araç diğer dillerde mevcuttur