SHA-1 Özet Üretici (160-bit Eski Algoritma)
SHA-1 özetlerini tarayıcınızda üretin — 40 karakterlik hex çıktısı, yükleme yok. Git parmak izleri, eski sertifika kontrolleri ve taşıma denetimleri için eski araç. Veriler cihazınızdan ayrılmaz.
SHA-1 Nedir?
SHA-1 (Secure Hash Algorithm 1), NIST tarafından 1995 yılında FIPS 180-1 olarak yayımlanan 160-bit kriptografik özet fonksiyonudur. NSA tarafından SHA-0'ın (1993'te hızla geri çekilen kusurlu bir önceki sürümün) yerini almak üzere tasarlanmış; 2000'li yıllar boyunca dijital imzalar, TLS sertifikaları ve kod imzalama için baskın özet algoritması olmuştur.
Kırılma tarihi: 2005 yılında Xiaoyun Wang'ın ekibi, SHA-1 karma çarpışma direncini beklenen 2^80 işlemden 2^63 işleme düşüren teorik bir saldırı yayımladı — teorik bir kırılmaydı, henüz pratik değil. Şubat 2017'de Google ve CWI Amsterdam, yaklaşık 110 GPU-yılı hesaplama kullanarak özdeş SHA-1 özetine sahip iki farklı PDF belgesi üreten SHAttered saldırısını yayımladı. Bu, kesin pratik kırılmaydı. NIST, SHA-1'i imzalar için 2011'de kullanımdan kaldırmıştı (NIST SP 800-131A); tarayıcı üreticileri ve Sertifika Otoriteleri 2016-2017'de SHA-1 sertifika desteğini kaldırdı.
Mevcut durum: SHA-1 tüm güvenlik açısından hassas kullanımlar için kullanım dışıdır — dijital imzalar, sertifika parmak izleri, parola saklama ve kod imzalama. İçerik adresleme yerine güvenlik için değil kullanıldığı Git'in nesne kimliği formatında ve yöneticilerin henüz taşımadığı eski yazılım sağlama toplamlarında varlığını sürdürmektedir. Git projesi sürüm 2.29'da (Ekim 2020) SHA-256 nesne format desteği ekledi. Tüm yeni projeler SHA-256 veya daha güçlü bir algoritma kullanmalıdır.
Bu araç SHA-1'i tamamen tarayıcınızda Web Crypto API'nin crypto.subtle.digest('SHA-1', ...) fonksiyonuyla hesaplar. 40 karakterlik hex çıktısı, sha1sum, openssl dgst -sha1 veya git hash-object'in ürettiğiyle aynıdır.
// Hash text using Web Crypto API (SHA-1 — legacy use only)
async function sha1(text) {
const data = new TextEncoder().encode(text);
const hash = await crypto.subtle.digest('SHA-1', data);
return Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0'))
.join('');
}
await sha1('Hello, World!');
// → '0a0a9f2a6772942557ab5355d76af442f8f65e01'
// ⚠️ SHA-1 is broken — use SHA-256 for new work. SHA-1 Örnekleri
Git işlem parmak izini arama
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 author A Dev <dev@example.com> 1716854400 +0000 committer A Dev <dev@example.com> 1716854400 +0000 Initial commit
Git her işlemi, SHA-1'in işlem başlığından artı içerikten tam bu biçimde hesaplandığı bir nesne olarak saklar. `git log`'un gösterdiği 40 karakterlik hex karakter dizisi doğrudan bir SHA-1 parmak izidir. `git cat-file` çıktısını hata ayıklarken veya bir yansıtma deposunun tarihi kurcalamadığını doğrularken aynı özeti yeniden oluşturmak için ham işlem nesnesi metnini buraya yapıştırın. Not: Git 2.29+ SHA-256 modunu destekler (git init --object-format=sha256) ve GitHub'ın nesne deposu nihayetinde taşınacaktır.
Eski TLS sertifika parmak izini doğrulama
-----BEGIN CERTIFICATE----- MIIDXTCCAkWgAwIBAgIJAKlL... -----END CERTIFICATE-----
2017 öncesinde tarayıcılar sertifika parmak izlerini 40 karakterlik SHA-1 hex karakter dizileri olarak görüntülüyordu. Sertifika Otoriteleri Ocak 2016'da SHA-1 imzalı sertifika yayımlamayı durdurdu ve tüm büyük tarayıcılar 2017'nin başında desteği kaldırdı. Eski bir dahili sertifikayı denetliyor veya eski bir IoT cihazını doğruluyorsanız, karşılaştırma için SHA-1 parmak izini yeniden oluşturmak amacıyla PEM gövdesini buraya yapıştırın. Modern iş akışları bunun yerine 64 karakterlik SHA-256 parmak izini kullanır.
Eski yazılım indirme doğrulaması
node-v0.12.7-linux-x64.tar.gz
Bazı eski yazılım arşivleri hâlâ yalnızca SHA-1 sağlama toplamı yayımlamaktadır. Bu temel bozulma tespiti sağlar (kurcalama tespiti değil) ve hiç sağlama toplamı olmamaktan yine de iyidir. Arşivi bırakmak, SHA-1'i hesaplamak ve ardından yayıncının gönderdiği değerle karşılaştırmak için Dosya sekmesini kullanın. SHA-256 de mevcutsa her zaman onu tercih edin.
SHAttered karma çarpışma gösterimi
(Google/CWI shattered-1.pdf dosyasının içeriğini Dosya sekmesiyle yapıştırın)
Şubat 2017'de Google ve CWI Amsterdam SHAttered saldırısını yayımladı — ilk pratik SHA-1 karma çarpışması. Aynı SHA-1 değerini üreten iki farklı PDF dosyası (shattered-1.pdf ve shattered-2.pdf) ürettiler: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a. Bu PDF'lerden birini bu aracın Dosya sekmesine bırakmak tam olarak bu özeti üretir ve karma çarpışmanın gerçek olduğunu kanıtlar. SHA-1'in neden kırıldığının en açık kanıtıdır: aynı parmak izine sahip iki farklı belge, parmak izinin artık güvenilir bir kimlik olmadığı anlamına gelir.
SHA-1 Özeti Nasıl Üretilir
- 1
Metin yazın veya dosya bırakın
Metin sekmesini seçin ve herhangi bir karakter dizisi — bir işlem mesajı, sertifika gövdesi veya eski sağlama toplamı girdisi — yapıştırın. SHA-1 özeti siz yazarken güncellenir. Dosyalar için Dosya sekmesine geçin ve herhangi bir dosyayı bırakma alanına sürükleyin; tarayıcı dosyayı yükleme yapmadan yerel olarak özetler.
- 2
40 karakterlik özeti kopyalayın
Özet çıktısının yanındaki Kopyala düğmesine tıklayın. 40 karakterlik tam küçük harf hex karakter dizisi panonuza gider. Eski sisteminiz büyük harf hex bekliyorsa Büyük Harf geçişini kullanın — bazı eski araçlar ve Windows API'leri büyük harf varsayımında bulunur.
- 3
Eski parmak izine karşı karşılaştırın
Karşılaştır sekmesine geçin ve iki SHA-1 özetini yan yana yapıştırarak eşleşip eşleşmediklerini doğrulayın. Eski yayıncı sağlama toplamını doğrulamak, yansıtılmış bir Git deposunu denetlemek veya SHA-256 benimsemesinden önceki bir belgeden eski TLS sertifika parmak izini kontrol etmek için kullanışlıdır.
Teknik Ayrıntılar
- Algoritma: Merkle-Damgård yapısı, 80 tur
- SHA-1 girdiyi 512-bitlik (64 baytlık) bloklarda işler; her biri farklı mantıksal fonksiyon (Ch, Parity, Maj, Parity) ve küçük tamsayıların kareköklerinden türetilen eklemeli sabit içeren dört 20-turlu aşamada gruplandırılmış 80 tur bitsel işlem uygular. İlk özet durumu beş 32-bit sözcüktür (A–E). Uygulama FIPS 180-1 (1995) ile tanımlanmış, resmi kullanımdan kaldırma diliyle birlikte FIPS 180-4 (2015) ile değiştirilmiştir.
- Çıktı: 160 bit, 40 hex karakter
- Her zaman tam olarak 40 küçük harf onaltılık karakterdir (160 bit = 20 bayt, bayt başına 2 hex karakter olarak kodlanmış). Çıktı uzunluğu girdi boyutundan bağımsız olarak sabittir. SHA-256'nın 64 karakteriyle karşılaştırıldığında, daha kısa çıktı daha az karma çarpışma direnci bit sağlar — SHA-1'in SHA-256'dan önce kırılmasının temel nedenlerinden biri.
- Performans: hızlı, ancak bu sorunun bir parçası
- SHA-1 hızlıdır — Web Crypto kullanan bir tarayıcıda tipik olarak 400-700 MB/s, SHA-256 ile rekabet edebilir düzeyde. Bir saldırgan için bu hız bir avantajdır: modern bir GPU kümesi saniyede milyarlarca SHA-1 özeti hesaplayarak kaba kuvvet ve karma çarpışma aramalarını hızlandırır. Hız, SHA-1'in (tıpkı MD5 gibi) parola saklama için asla kullanılmaması gerektiğinin nedenidir — bunun yerine bcrypt, scrypt veya Argon2 kullanın.
- Standartlar: FIPS 180-1 (1995) — FIPS 180-4 bağlamında kullanımdan kaldırıldı
- SHA-1, kusurlu SHA-0'ın yerini alarak FIPS 180-1 (1995) ile standartlaştırıldı. NIST, SHA-1'i dijital imzalar için NIST SP 800-131A (2011) ile kullanımdan kaldırdı ve FIPS 186-5 (2023) ile tüm dijital imza oluşturmaları için resmi olarak yasakladı. W3C WebCrypto API, eski birlikte çalışabilirlik nedenleriyle hâlâ SHA-1'i içeriyor; bu nedenle bu tarayıcı aracı onu hesaplayabiliyor.
En İyi Uygulamalar
- SHA-1'i güvenlik açısından hassas işlemlerde kesinlikle kullanmayın
- SHA-1, dijital imzalar, TLS sertifikaları, kod imzalama, parola saklama ve karma çarpışma direncinin önem taşıdığı her iş akışı için kullanım dışıdır. 2017 SHAttered saldırısı pratik karma çarpışmaları gösterdi. Tüm güvenlik kullanımları için SHA-256 veya SHA-3'e taşıyın. Maliyet farkı modern donanımda ihmal edilebilir düzeydedir — SHA-256 tüm mevcut CPU'larda donanım hızlandırmalıdır.
- Eski parmak izi araması için SHA-1 kullanımı kabul edilebilir
- 2017 öncesi bir dosya sağlama toplamını doğrulamanız, bir Git işlem kimliği aramanız veya denetim amacıyla eski bir sertifika parmak izini incelemeniz gerekiyorsa SHA-1 uygundur. Özet kendisi bir güven kararı vermek için kullanılmıyor — yalnızca çapraz referans için bilinen bir parmak izi yeniden üretiliyor. Denetim günlüklerinizde bunu açıkça belgeleyin.
- Her zaman Unicode kod noktaları değil UTF-8 baytları özetleyin
- SHA-1, tüm özet algoritmaları gibi karakterler üzerinde değil baytlar üzerinde çalışır. UTF-8 ile UTF-16 olarak kodlanmış aynı karakter dizisi farklı özetler üretir. Bu araç, özetleme öncesinde girdiyi BOM olmadan UTF-8 olarak kodlar. Farklı bir kodlama kullanan bir sistemle eşleştirmeniz gerekiyorsa, özetleri karşılaştırmadan önce girdiyi harici olarak önceden kodlamanız gerekir.
- Kodda özetleri doğrularken sabit zamanlı karşılaştırma kullanın
- Kodda iki SHA-1 özeti karşılaştırıyorsanız sabit zamanlı eşitlik kontrolü kullanın — Node.js'te crypto.timingSafeEqual(), Python'da hmac.compare_digest() — naif karakter dizisi eşitliği (=== veya ==) yerine. Naif karşılaştırma, teorik olarak bir saldırganın beklenen özeti bayt bayt yeniden oluşturmasına olanak tanıyan zamanlama bilgisi sızdırır.
SHA-1 SSS
SHA-1 hâlâ güvenli mi?
Git neden hâlâ SHA-1 kullanıyor?
SHA-1'den SHA-256'ya geçmeli miyim?
SHAttered saldırısı neydi?
SHA-1 karma çarpışmaları kazara gerçekleşebilir mi?
SHA-1, sağlama toplamları gibi güvenlik dışı kullanımlar için uygun mu?
SHA-1 özeti ne kadar uzundur?
Girdi verilerim sunucuya gönderiliyor mu?
crypto.subtle.digest('SHA-1', data)) kullanılarak tamamen tarayıcınızda hesaplanır. Özetleme sırasında Geliştirici Araçları → Ağ sekmesini açın — sıfır giden istek göreceksiniz. Bıraktığınız dosyalar FileReader API aracılığıyla okunur ve yerel olarak özetlenir; baytlar asla cihazınızdan ayrılmaz. Bu araç gizli belgeler, eski sertifikalar veya özel kaynak kodu parmak izleri için güvenlidir. SHA-1 çıktım komut satırındaki sha1sum'dan neden farklı?
İlgili Araçlar
Tüm araçları görüntüleyin →JWT Çözücü
Güvenlik Araçları
Ücretsiz JWT çözücümüzle JWT token'larını online çözün. header, payload, signature, son kullanma, algoritma ve claim'leri anında inceleyin. %100 tarayıcıda çalışır — token'ınız cihazınızdan ayrılmaz. Kayıt yok, izleme yok.
MD5 Özet Üretici ve Dosya Sağlama Aracı
Güvenlik Araçları
MD5, SHA-256, SHA-1 ve SHA-512 özetlerini online ücretsiz üretin. Tarayıcınızda metin veya dosya özeti alın, sağlama değerlerini doğrulayın ve sonuçları kopyalayın. Kayıt gerekmez.
Rastgele Şifre Üretici — Özelleştirilebilir ve Güvenli
Güvenlik Araçları
Anında güçlü rastgele şifreler üretin — ücretsiz, %100 tarayıcınızda. Uzunluk ve karakterleri özelleştirin, entropi analiziyle 50'ye kadar toplu üretim.
SHA-256 Özet Üretici ve Sağlama Aracı
Güvenlik Araçları
SHA-256 özetlerini ücretsiz üretin. Metin veya dosyaları tarayıcınızda özetleyin, sağlama toplamlarını doğrulayın, 64 karakterlik hex çıktısını kopyalayın. Kayıt gerekmez; veriler sayfadan ayrılmaz.
SHA-3 Özet Üretici (Keccak SHA3-256)
Güvenlik Araçları
SHA-3 özetlerini ücretsiz üretin. NIST FIPS 202 sünger yapısı — SHA-2 sonrası standart. SHA3-256 çıktısı 64 hex karakter. Geç yüklenen js-sha3 aracılığıyla yalnızca tarayıcıda; sıfır yükleme.
SHA-384 Özet Üretici (TLS Suite B Özeti)
Güvenlik Araçları
SHA-384 özetlerini üretin — 96 karakterlik hex çıktısı, uzunluk-uzatma saldırısına bağışık, NSA Suite B uyumlu. TLS'de AES-256-GCM ile eşleştirilir. Web Crypto API aracılığıyla tüm özetleme tarayıcınızda çalışır.