SHA-1 Hash Oluşturucu

Siz yazarken metnin, onaltılık baytların veya bir dosyanın 160 bitlik SHA-1 özetini alın. Sonucu yayımlanmış bir sağlama toplamıyla karşılaştırın ve aynı girdinin SHA-256, SHA-512 ve MD5 değerlerini bir bakışta görün.

Tüm algoritmalar

Tamamen tarayıcınızda çalışır. Hiçbir veri yüklenmez.

Nasıl kullanılır

  1. Metin girin, girdi biçimini "Onaltılık" olarak değiştirin ya da "Dosya aç" ile bir dosya açın.
  2. SHA-1 önceden seçilidir; sonucu başka bir hash fonksiyonuyla karşılaştırmak isterseniz "Algoritma" listesini değiştirin.
  3. "Çıktı biçimi" listesinden "hex (küçük harf)" (sha1sum ve Git'in gösterdiği biçim), "HEX (büyük harf)" veya "Base64" seçin.
  4. Beklenen SHA-1 değerini "Karşılaştırılacak değer" alanına yapıştırın; sayfa "Eşleşiyor" veya "Eşleşmiyor" sonucunu gösterir.

SHA-1 nedir?

SHA-1 (Secure Hash Algorithm 1), NSA tarafından tasarlandı ve kısa ömürlü SHA-0'ın yerini almak üzere 1995'te NIST tarafından FIPS 180-1 olarak yayımlandı. Bugün FIPS 180-4'te tanımlanır; RFC 3174 ise algoritmayı örnek C koduyla açıklar. SHA-1, 512 bitlik blokları 80 turda işler ve 160 bitlik bir özet üretir: 40 hex karakteri veya 28 Base64 karakteri.

Her hash gibi SHA-1 de tek yönlüdür. Bir özetin şifresi çözülemez; yalnızca tahminler hash'lenerek eşleşme aranabilir. 2012'de LinkedIn'den sızdırılan tuzsuz SHA-1 parola hash'leri de bu yolla toplu olarak kırıldı. Parolalar Argon2, scrypt, bcrypt veya PBKDF2 ile saklanmalıdır.

SHAttered: SHA-1 neden kullanımdan kaldırıldı

Şubat 2017'de CWI Amsterdam ve Google'dan araştırmacılar, ilk gerçek SHA-1 çakışması olan SHAttered'ı yayımladı: yaklaşık 2^63 SHA-1 hesaplamasıyla bulunan ve aynı hash değerine sahip iki farklı PDF dosyası. 2020'de Gaëtan Leurent ve Thomas Peyrin ("SHA-1 is a Shambles"), seçilmiş önek çakışmasıyla PGP anahtarları üzerinde sahte SHA-1 imzaları oluşturulabildiğini gösterdi; üstelik bunun maliyeti, kaynakları bol bir saldırganın karşılayabileceği düzeydeydi.

  • Genel sertifika yetkilileri (CA) 2016'da SHA-1 TLS sertifikası vermeyi bıraktı; tarayıcılar da 2017'nin başında bu sertifikalara güvenmeyi bıraktı.
  • NIST, 2013'ten beri yeni dijital imzalarda SHA-1 kullanımına izin vermiyor ve onu 2030 sonuna kadar tamamen kullanımdan kaldırmayı planlıyor.
  • Çoğu Git deposu nesneleri hâlâ SHA-1 ile tanımlar; bu değerler, çakışma girişimlerini tespit eden güçlendirilmiş bir uygulamayla hesaplanır. Git, SHA-256 kullanan depolar da oluşturabilir.

Çakışmalar HMAC'i kırmaz; bu nedenle HMAC-SHA1 hâlâ TOTP kodlarında ve eski webhook imzalarında karşımıza çıkar. Bu değeri HMAC Oluşturucu ile hesaplayabilirsiniz. Yeni projelerde ise SHA-256 tercih edin.

Git nesne kimlikleri, Base64 ve metin kodlaması

Bir Git blob kimliği yalnızca dosyanın SHA-1 değeri değildir. Git; blob, bir boşluk, bayt cinsinden boyut ve bir sıfır bayttan oluşan bir başlığı, ardından gelen içerikle birlikte hash'ler. Aynı değeri burada elde etmek için girdi biçimini "Onaltılık" yapın ve bu başlık baytlarını da ekleyin: hello ve bir satır sonu için onaltılık girdi 626c6f6220360068656c6c6f0a olur.

$ printf 'hello\n' | sha1sum
f572d396fae9206628714fb2ce00f72e94f2258f  -
$ printf 'hello\n' | git hash-object --stdin
ce013625030ba8dba906f756967f9e9ca394464a

SHA-1 genellikle küçük harfli hex olarak gösterilir. Base64 biçimine WebSocket el sıkışmasında rastlanır: burada Sec-WebSocket-Accept, istemci anahtarına sabit bir GUID eklenerek elde edilen değerin Base64 olarak kodlanmış SHA-1 özetidir. LDAP {SHA} parola değerleri de bu biçimi kullanır. Hash'in baytları kapsadığını unutmayın: aksanlı harfler içeren bir metnin SHA-1 değeri UTF-8'de bir, Windows-1252'de başkadır.

Komut satırında ve kodda SHA-1

sha1sum file.zip                          # Linux
shasum file.zip                           # macOS (varsayılan SHA-1'dir)
certutil -hashfile file.zip SHA1          # Windows
Get-FileHash file.zip -Algorithm SHA1     # PowerShell

# Python
hashlib.sha1(data).hexdigest()

// Node.js
crypto.createHash('sha1').update(data).digest('hex')

Bu sayfa SHA-1'i tarayıcınızda yerleşik olan Web Crypto API ile hesaplar; bu nedenle girdi cihazınızdan hiçbir zaman çıkmaz. "Tüm algoritmalar" tablosu aynı girdinin MD5, SHA-256, SHA-384, SHA-512 ve CRC değerlerini gösterir.

Örnekler

Girdi (UTF-8)SHA-1
Hello, World!0a0a9f2a6772942557ab5355d76af442f8f65e01
Base64.is6c667ee2efd2020349eed40efa07c26683f613c8
你好440ee0853ad1e99f962b63e459ef992d7c211722

Sıkça sorulan sorular

SHA-1 kullanmak hâlâ güvenli mi?

İmzalar ve sertifikalar gibi, bir saldırganın girdiyi seçebildiği veya etkileyebildiği yerlerde değil; çünkü SHA-1 çakışmaları üretilebilir. Kazara oluşan bozulmaları yine de tespit eder ve HMAC-SHA1 çakışmalardan etkilenmez. Yeni projelerde SHA-256 veya SHA-512 kullanın.

SHA-1 hash değeri tersine çevrilebilir mi?

Hayır. Ortada ne bir anahtar ne de bir şifre çözme işlemi vardır. Sorgulama siteleri yalnızca yaygın kelimelerden ve sızdırılmış parolalardan oluşan tablolarında zaten bulunan girdileri bulabilir. Uzun ve rastgele bir girdinin bu sitelere karşı güvende olup kısa bir parolanın güvende olmamasının nedeni budur.

SHA-1 hash değeri ne kadar uzundur?
160 bit, yani 20 bayt: 40 hex karakteri veya tek bir = ile biten 28 Base64 karakteri. RIPEMD-160 de aynı uzunluktadır; MySQL 4.1+ parola hash'leri ise bir yıldız işareti ve ardından gelen 40 hex karakterinden oluşur. Hash Tanımlayıcı, verilen bir dize için olası algoritmaları listeler.
Bir dosyayı yayımlanan SHA-1 değeriyle nasıl karşılaştırırım?

Dosyayı açın, ardından yayımlanan değeri "Karşılaştırılacak değer" alanına yapıştırın. Büyük veya küçük harfli hex ile Base64 değerlerinin tümü kabul edilir; sayfa "Eşleşiyor" veya "Eşleşmiyor" sonucunu gösterir.

SHA-1 ile SHA-256 arasındaki fark nedir?

Her ikisi de NIST tarafından yayımlandı; ancak SHA-256 daha yeni olan SHA-2 ailesine aittir, 256 bitlik bir çıktı üretir ve bilinen pratik bir saldırısı yoktur. SHA-1'in çıktısı daha kısadır ve çakışma direnci kırılmıştır.