Özet Oluşturucu

Herhangi bir metnin ya da dosyanın MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3, Keccak-256, RIPEMD-160, BLAKE2b ya da BLAKE2s özetlerini hesaplayın — sağlama toplamları, bütünlük denetimleri ve önbellek anahtarları için kullanışlıdır. Girdinize karşı doğrulamak için beklenen bir özet yapıştırın ya da hangi algoritmadan geldiğini tahmin etmek için bilinmeyen bir karma dizgisi yapıştırın. SHA-1/256/384/512 tarayıcınızın yerel WebCrypto'sundan gelir; geri kalanı kendi içinde yeterli saf JavaScript uygulamalarıdır, bu yüzden her şey yerel çalışır. Tohumlu rastgele diziler için Rastgele Sayı Üretecine de bakın.
Tamamen yerel çalışır — hiçbir şey yüklenmez. 200 MB'a kadar girdiler.
Girdi: Algoritmalar:
Çıktı biçimi: SHA-1 eski bir algoritmadır — ihtiyacınız yoksa SHA-256/512 tercih edin.
Özet satırları “ALGORİTMA  karma” biçimini kullanır, böylece onları sürüm notlarına ya da indirme manifestolarına kopyalayabilirsiniz.
Bir indirme sayfasının ya da manifestonun verdiği özeti yapıştırın. Araç büyük/küçük harfe, boşluklara, iki nokta üst üste işaretlerine, sha256= tarzı öneklere, MD5 (file.exe) = tarzı sarmalayıcılara ve çok satırlı md5sum çıktısına göz yumar; ardından bunu yukarıda işaretlediğiniz algoritmalarla karşılaştırır.
Bilinmeyen bir karma dizgisi yapıştırın. Araç uzunluğunu, karakter kümesini ve önekleri okur ve bunu üretmiş olabilecek algoritmaları listeler — düz bir onaltılık özetten $2b$… ya da $argon2id$… gibi PHC tarzı parola karmalarına kadar.
Bir algoritma seçmek:
SHA-256, bugün bütünlük denetimleri için mantıklı varsayılandır. SHA-512 daha güçlüdür ve 64 bitlik donanımda daha hızlı çalışır, bunun bedeli daha uzun çıktıdır; SHA-384, kısaltılmış uzunlukta bir SHA-2 özetine ihtiyaç duyduğunuzda orta seçenektir. SHA-3, bağımsız tasarlanmış bir NIST standardıdır (bir SHA-2 yükseltmesi değil) ve SHA-2 ile ortak soyu olmayan bir algoritma istediğinizde standart cevaptır; Keccak-256, Ethereum ve birkaç başka sistemin kullandığı standart öncesi varyanttır ve SHA3-256'dan tek bir dolgulama baytıyla ayrılır. BLAKE2b/BLAKE2s, yazılım kullanımı için tasarlanmış hızlı modern karmalardır; RIPEMD-160 ise Bitcoin ve OpenPGP bağlamlarında hâlâ kullanılan eski bir tasarımdır. SHA-1 ve MD5, düşmanca girdiler için kriptografik olarak kırılmıştır ama tekilleştirme, eski sistemler ve düşmanca olmayan sağlama toplamları için doğru ve yaygın kullanılmaya devam eder — bir saldırganın içeriği seçebileceği yerlerde asla kullanmayın. Bugün hiçbir karma, kuantum bilgisayarların imzaları ve anahtar değişimini önce tehdit ettiği anlamda “kuantum sonrası dirençli” değildir — Grover algoritması yalnızca etkili karma uzunluğunu yarıya indirir, bu yüzden SHA-256 pratik sınırın rahatça üstünde kalır. Karmalar belirleyicidir: aynı baytlar her zaman aynı özeti üretir ve tam olarak bu, bir indirmenin ya da yapılandırma dosyasının bozulmadığını doğrulamak için onları yararlı kılar.
Çin ulusal karmasını mı arıyorsunuz?
Çin ticari kriptografisinde zorunlu kılınan özet SM3 (GB/T 32905-2016), bu sayfanın parçası değildir — HMAC-SM3 desteğiyle kendi aracı vardır, SM3 Karma Üreteci sayfasında, SM paketinin geri kalanıyla birlikte: SM4 (blok şifre), SM2 (imzalar ve şifreleme) ve SM9 (kimlik tabanlı kriptografi).
Karma Üreteci — her algoritma sıfırdan açıklanmış
Tek cümlede: kriptografik bir karma işlevi tek yönlü bir blenderdır — herhangi bir sayıda baytı alır ve sabit uzunlukta bir parmak izine sıkıştırır; öyle ki aynı girdi her zaman aynı parmak izini verir, ama parmak izi girdinin nasıl yeniden kurulacağı hakkında hiçbir şey söylemez. Bu sayfa bunlardan on birini tamamen tarayıcı sekmenizin içinde çalıştırır.

Aşağıdaki her algoritma aynı dört adımla açıklanır: sade sözcüklerle ne olduğu, formül kullanmadan nasıl çalıştığına dair sezgi, bugün hâlâ kullanılıp kullanılmayacağı ve insanların onunla en sık yaptığı hatalar.

MD5

Nedir. MD5 (1992), herhangi bir girdiyi 128 bitlik (32 onaltılık karakter) bir parmak izine sıkıştırır. 1990'ların bilgisayarlarında hızlı olacak şekilde tasarlandı ve öyledir — tam da bu yüzden hâlâ her yerdedir: yazılım indirme sayfaları, dosya tekilleştirme önbellekleri, eski veritabanı anahtarları.

Sezgisel olarak nasıl çalışır. Girdi 64 baytlık parçalara bölünür. Her parça 128 bitlik kayan bir duruma dört kez karıştırılır (dört biraz farklı karıştırma turu) ve son parçadan sonra durum özet olarak yazdırılır. Karıştırma toplamalardan, döndürmelerden ve tablo aramalarından oluşur — o zaman da ucuzdu, şimdi de.

Kullanmalı mısınız? Kimsenin sizi kandırmaya çalışmadığı sağlama toplamları için — bozuk bir indirmeyi ya da yinelenen dosyaları bulmak — evet; bozulmayı hâlâ mükemmel biçimde bildirir. Düşmanca her şey için hayır: 2004'ten beri araştırmacılar aynı MD5'e sahip iki farklı dosyayı saniyeler içinde üretebilir ve MD5 çakışmalarını kullanan gerçek sertifika sahteciliği 2008'de yaşandı. Onu bir kilit değil, bir seri numarası gibi düşünün.

Sık yapılan hatalar. Parolalar için MD5 kullanmak (çok hızlı — orada ne olması gerektiği için Parola Karma Üretecine bakın); “MD5 eşleşiyor” diye bir dosyaya güvenmek, oysa saldırgan MD5'i de yayımlamışsa; ve sadece karmayı değil tüm MD5 (dosya) = karma satırını yapıştırmak — yukarıdaki Doğrula kutusu ikisini de kabul eder.

SHA-1

Nedir. SHA-1 (1995, NSA) 160 bitlik (40 onaltılık karakter) bir özet üretir. Yirmi yıl boyunca Git, TLS sertifikaları ve PGP imzalarının varsayılan bütünlük karmasıydı.

Sezgisel olarak nasıl çalışır. MD5 ile aynı aile tarifi, ama 160 bitlik bir durum, 64 baytlık parça başına 80 karıştırma turu ve daha geniş bir işlem kümesiyle. Ekstra turlar, karıştırıcının tersine mühendisliğini zorlaştırmak içindi.

Kullanmalı mısınız? Düşmanca her şey için hayır. Teorik kırılma 2017'de pratik hale geldi: Google, özdeş SHA-1 değerlerine sahip iki farklı PDF üretti (SHAttered saldırısı, yaklaşık 6500 CPU yılı). Git, nesneleri hâlâ SHA-1 altında saklar ama onu yalnızca bir tanımlayıcı olarak ele alır ve o zamandan beri çakışma algılaması eklemiştir. Yeni işler için SHA-256 ya da SHA-3 kullanın.

Sık yapılan hatalar. 160 bitin “hâlâ yeterince uzun olduğuna” inanmak — kırılma iç yapıyla ilgilidir, kaba kuvvetle değil; ve RIPEMD-160'ı SHA-1 ile karıştırmak, çünkü ikisi de 40 onaltılık karakterdir (yukarıdaki tanımlayıcı kutusu bunları ayırt eder).

SHA-2: SHA-256, SHA-384 ve SHA-512

Nedir. SHA-2 ailesi (2001, NSA), modern bütünlük denetiminin iş atıdır. SHA-256 256 bit (64 onaltılık karakter) verir, SHA-512 512 bit verir ve SHA-384, sonucu 384 bite kesilmiş SHA-512'dir — bir protokol daha kısa bir etiket zorunlu kıldığında kullanışlıdır.

Sezgisel olarak nasıl çalışır. 64 baytlık parçalar (512 bitlik varyantlar için 128 bayt), 64 (ya da 80) tur toplama-döndürme-karıştırma adımından geçerek 8 kelimelik bir duruma katlanır. MD5'ten farklı olarak program önce her parçayı genişletilmiş bir tampona gerdirir; MD5'i ve SHA-1'i kıran saldırı türünü engelleyen de budur. Bilmeye değer bir merak: 64 bitlik CPU'larda SHA-512, SHA-256'dan daha hızlıdır, çünkü 64 bitlik aritmetikle tur başına iki kat veri işler.

Kullanmalı mısınız? Evet — SHA-256, bugün dosya sağlama toplamları, kod imzalama ve sertifika parmak izleri için varsayılan cevaptır; yirmi yıllık analizden sonra bilinen pratik bir kırılma yoktur. Daha fazla pay istediğinizde ya da platform onları daha hızlı çalıştırdığında SHA-384/512 kullanın.

Sık yapılan hatalar. Parolalar için yalnızca SHA-256 kullanmak — bu hızlı bir karmadır ve orada hız düşmandır (bcrypt/scrypt/Argon2id kullanın); ve düşmanca çakışma direnci ayarlarında özet uzunluğunu güçle karıştırmak — uzunluk yalnızca tavanı belirler.

SHA-3 (SHA3-256 / SHA3-512) ve Keccak-256

Nedir. SHA-3 (2015, Bertoni, Daemen, Peeters ve Van Assche'nin Keccak önerisinden standartlaştırılmıştır) üçüncü NIST karma standardıdır. SHA-2 iç yapısıyla hiçbir ortak noktası yoktur — SHA-2 bir gün düşerse bağımsız bir yedek olması için tam da bu nedenle seçilmiştir.

Sezgisel olarak nasıl çalışır. Keccak, parçaları küçük bir durumdan geçirmek yerine tekrar tekrar “emer ve sıkar”: girdi bit bit 5×5×64 bitlik bir süngerin içine emilir, tüm sünger sabit bir permütasyonla karıştırılır (tüm durum üzerinde bit düzeyinde işlemlerden oluşan 24 tur) ve özet bitleri sıkılarak çıkarılır. Sünger resmi tüm fikirdir: kapasite bitleri asla çıktı olarak verilmez ve işlevi tek yönlü yapan da onlardır.

Keccak-256 ile SHA3-256. Tam olarak bir dolgulama baytında farklılaşırlar. Keccak ekibinin özgün önerisi son bloğu 0x01 ile dolguluyordu; NIST standart dolgulamayı 0x06'ya değiştirdi (SHA-2 çağı Keccak'ın kullandığı alan ayrımı). Ethereum özgün dolgulamayı benimsedi, bu yüzden “keccak256”sı her girdi için standart SHA3-256'dan farklıdır. Bu sayfa ikisini de sunar, ayrı ayrı işaretlenir.

Kullanmalı mısınız? Evet — politika SHA-2 olmayan bir algoritma istediğinde birincil seçim olarak, ya da ekosistem zaten onu konuştuğunda. Sık yapılan hatalar: SHA3-256 ve Keccak-256'nın birbirinin yerine geçtiğini varsaymak (geçmezler — aynı girdi için bu sayfanın ürettiği iki satırı karşılaştırın); ve “SHA-3”ün SHA-2'nin yerini aldığını varsaymak — ikisi de güvenlidir, SHA-2 daha yaygın dağıtılmış olanıdır.

RIPEMD-160

Nedir. RIPEMD-160 (1996, Avrupalı akademisyenlerden oluşan RIPE konsorsiyumu; Dobbertin, Bosselaers ve Preneel tarafından güçlendirildi) 160 bit üretir. Tamamen Avrupa tasarımıdır ve NSA tasarımı SHA ailesinden kasten bağımsızdır.

Sezgisel olarak nasıl çalışır. Her 64 baytlık parça, farklı sabitler ve döndürme miktarlarıyla 80 turdan oluşan iki paralel hat tarafından işlenir; sonunda iki hat ve eski durum birleştirilir. İki izli yapı, tasarımcıların 1990'ların diğer karmalarını kıran diferansiyel saldırılara karşı direnme yoluydu.

Kullanmalı mısınız? Pratikte esas olarak başka sistemlerin içinde yaşar: Bitcoin adresleri genel anahtarlarını RIPEMD-160(SHA-256(pk)) ile karmalar, eski OpenPGP anahtarları onu bir karma seçeneği olarak sunar ve BitTorrent v1 parçaları için SHA-1 ile birlikte geleneksel karmadır. Pratik bir çakışma saldırısı yoktur, ama 160 bitlik boyutu bu sayfadaki en küçük güvenlik payını verir. Yeni bağımsız kullanımlar için SHA-256 ya da SHA-3'ü tercih edin.

Sık yapılan hatalar. İki paralel hattın onu “iki kat güçlü” yaptığına inanmak — çakışma direncini sınırlayan çıktı boyutudur; ve onu SHA-1 ile karıştırmak (aynı 40 onaltılık karakter uzunluğu; yukarıdaki tanımlayıcı kutusu her iki olasılığı yan yana listeler).

BLAKE2b-512 ve BLAKE2s-256

Nedir. BLAKE2 (2013, Aumasson, Neves, Wilcox-O’Hearn ve Winnerlein), yazılım hızı için tasarlanmış bir karmadır: BLAKE2b 64 bitlik platformları hedefler ve 512 bite kadar çıktı üretir, BLAKE2s 32 bitlik platformları hedefler ve 256 bite kadar çıktı üretir.

Sezgisel olarak nasıl çalışır. SHA-3 finalisti BLAKE'ten türemiştir; çekirdeği, ChaCha akış şifresinden ödünç alınmış anahtarlı bir permütasyondur: 4×4'lük bir kelime matrisi, sütun ve köşegen karıştırma adımlarının sırayla uygulanmasıyla karıştırılır — önce yukarıdan aşağıya, sonra köşegenler boyunca bir ızgarayı karıştırmak gibi — parça başına 12 (BLAKE2b) ya da 10 (BLAKE2s) tur. Bu adımlar CPU komutlarına güzelce oturduğu için BLAKE2, SHA-3'e yakın güvenlik sunarken çoğu zaman MD5'ten daha hızlıdır.

Kullanmalı mısınız? Evet — tamamen modern, kırılmamış bir tasarımdır; performansa duyarlı yazılımlarda (bazı ekosistemlerde paket bütünlüğü, içerik adresli depolama, yedek tekilleştirme) ve hızlı bir MAC olarak yaygındır. Bu sayfada BLAKE2b-512 en uzun özetleri, BLAKE2s-256 ise kompakt modern seçeneği verir.

Sık yapılan hatalar. “Daha hızlı olan zayıf olmalı” düşüncesi — BLAKE2 köşe kesilerek değil, tasarımıyla hızlıdır; ayrıca BLAKE2'nin bir anahtar (bunu bir MAC yapar) ya da kişiselleştirme dizgisi de kabul ettiğini fark etmemek — bu sayfa her zaman onu anahtarsız, düz kipte kullanır.

Doğrula ve Tanımla kutularını okumak

Doğrula. Doğrula kutusu yapıştırdığınız her şeyi normalleştirir — büyük ya da küçük harf, her iki karakterde bir iki nokta üst üste, bir sha256= öneki, BSD tarzı SHA256 (dosya) = karma sarmalayıcısı, karmadan sonra dosya adı içeren bir GNU md5sum satırı, başıboş \r\n — ardından güncel girdiniz (metin ya da seçilen dosya) üzerinde işaretlenen her algoritmayı yeniden hesaplar ve eşleşen her algoritmayı bildirir. Yeşil bir eşleşme “bu baytlar yayıncının karmaladığı şeyin tam kendisi” demektir; kırmızı ise işaretli hiçbir algoritmanın bunu üretmediği anlamına gelir — daha fazla algoritma işaretlemeyi deneyin ya da yapıştırmanın kesilip kesilmediğini denetleyin.

Tanımla. Tanımlayıcı kutusu hiçbir şeyi karmalamaz; dizgenin şeklini okur. Uzunluk adayları daraltır: 32 onaltılık karakter MD5 olabilir, 40 SHA-1 ya da RIPEMD-160 olabilir, 64 SHA-256 / SHA3-256 / Keccak-256 / BLAKE2s-256 olabilir, 96 SHA-384, 128 SHA-512 / SHA3-512 / BLAKE2b-512. Önekler parola karmalarını açığa çıkarır ($2a$/$2b$/$2y$ bcrypt, $argon2id$, $scrypt$, $6$ sha512crypt, $1$ MD5-crypt) — bunlar başka bir türdür (bkz. Parola Karma Üreteci) ve bu sayfa bilerek bunları hesaplamaz. +, / ve = içeren, uzunluğu 4'ün katı olan bir dizgi, bir onaltılık özetten çok Base64 kodlanmış veriye benzer; araç bunu çözer ve karşılık gelen bayt uzunluğunu bildirir.

Tanımlamanın neyi söyleyip neyi söyleyemediği. Uzunluk ve karakter kümesi biçimin parmak izleridir, algoritmanın kanıtı değil: iki 64 onaltılık karakterlik dizgi SHA-256'dan ya da kesilmiş SHA-512'den gelmiş olabilir. Tanımlayıcı olasılıkları sıralar; baytlarınızın gerçekte hangi algoritmayla eşleştiğini kanıtlayan Doğrula kutusudur.

On birinin tek bakışta özeti
Algoritma Kesin Uydurma “The quick brown fox jumps over the lazy dog” cümlesinin özeti
MD5128 bit19929e107d9d372bb6826bd81d3542a419d6
SHA-1160 bit19952fd4e1c67a2d28fced849ee1bb76e7391b93eb12
SHA-256256 bit2001d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
SHA-384384 bit2001ca737f1014a48f4c0b6dd43cb177b0afd9e5169367544c494011e3317dbf9a509cb1e5dc1e85a941bbee3d7f2afbc9b1
SHA-512512 bit200107e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6
SHA3-256256 bit201569070dda01975c8c120c3aada1b282394e7f032fa9cf32f4cb2259a0897dfc04
SHA3-512512 bit201501dedd5de4ef14642445ba5f5b97c15e47b9ad931326e4b0727cd94cefc44fff23f07bf543139939b49128caf436dc1bdee54fcb24023a08d9403f9b4bf0d450
Keccak-256256 bit2015 öncesi4d741b6f1eb29cb2a9b9911c82f56fa8d73b04959d3d9d222895df6c0b28aa15
RIPEMD-160160 bit199637f332f68db77bd9d7edd4969571ad671cf9dd3b
BLAKE2b-512512 bit2013a8add4bdddfd93e4877d2746e62817b116364a1fa7bc148d95090bc7333b3673f82401cf7aa2e4cb1ecd90296e3f14cb5413f8ed77be73045b13914cdcd6a918
BLAKE2s-256256 bit2013606beeec743ccbeff6cbcdf5d5302aa855c256c29b88c8ed331ea1a6bf3c8812

Yukarıdaki tablodaki her özet, bu sayfanın kendi motorları tarafından üretilir. Tüm algoritmaları işaretleyin, Örnek'e tıklayın ve karşılaştırın. SHA-3, Keccak, RIPEMD-160 ve BLAKE2 satırları, bu sitedeki kripto araçlarının genelinde kullanılan kendi barındırdığımız crypto-shared.js çekirdeğinden gelir.

SSS

Bir indirme için hangi kutuya güvenmeliyim? SHA-256 işaretliyken Doğrula kutusuna — bugün çoğu yayıncı SHA-256 ya da SHA-512 ile imzalar. Tanımla kutusu yalnızca adayları adlandırır; dosyanız hakkında asla bir şey kanıtlamaz.

Keccak-256 neden listede? Çünkü Ethereum, Swarm ve birkaç defter sistemi, standart öncesi dolgulamayı benimsedi. Bir Ethereum keccak256'yı doğruluyorsanız SHA3-256 değil, o satırı kullanmalısınız.

İki farklı girdi aynı özeti paylaşabilir mi? Teorik olarak evet — sonsuz sayıda girdi sonlu bir özet kümesine eşlenir (güvercin yuvası ilkesi). Pratikte, evrenin ısı ölümünden önce böyle bir çift bulmak “çakışma direnci”nin konusudur ve yukarıdaki MD5 ile SHA-1 dışındaki her algoritma hâlâ ayaktadır.

Karmalar şifreleme midir? Hayır. Şifreleme bir anahtarla geri çevrilebilir; karma ise tek yönlü bir blenderdır. Bu sayfadaki hiçbir şey metninize geri “şifresi çözülemez” — bu bir kısıtlama değil, bir özelliktir.