Nasıl kullanılır?
- Script ya da stil dosyasının metnini Dosyanın metni alanına yapıştırın, ya da dosyayı Ya da bir dosya alanından seçin.
- Algoritma seçin. Her algoritma için bir değer yazılması gerekiyorsa Üçü birden seçeneğini kullanın.
- Sayfanın dosyayı yükleyeceği Dosyanın adresi alanını birebir yazın. Sayfaya yapıştırılacak öğe aşağıda belirir.
- Integrity değeri ya da Sayfaya yapıştırılacak öğe çıktısını kopyalayın. Elinizdeki bir değeri kontrol etmek için onu Kontrol edilecek integrity değeri alanına yapıştırın.
Değer nasıl üretilir
Integrity değeri, bir özet algoritmasının adı, bir tire ve dosyanın base64 biçimindeki özetinden oluşur. Tarayıcı dosyanın baytlarını olduğu gibi özetler; tek bir bayt değişirse değer de değişir. Her uyumlu tarayıcı sha256, sha384 ve sha512 algoritmalarını destekler (SRI bölüm 3.2). Base64, RFC 4648 bölüm 4'teki alfabeyi kullanır; dolgu için sonda = işareti bulunabilir.
Değer, boşlukla ayrılmış birden çok öğe de içerebilir (bölüm 3.2.1). Tarayıcı, tanıdığı öğeler arasında en güçlü algoritmayı kullanır; bu yüzden sha512 değeri sha256 değerinin önüne geçer.
integrity = algoritma + "-" + base64(özet(baytlar))
- sha256: tireden sonra 44 karakter base64.
- sha384: tireden sonra 64 karakter.
- sha512: tireden sonra 88 karakter.
Kontrol neyi kapsar, neyi kapsamaz
Kontrol, dosyanın baytlarının özeti değerdeki en güçlü algoritmanın değerlerinden biriyle aynıysa geçer (SRI bölüm 3.3). Tarayıcının tanımadığı algoritmalı öğeler atlanır. Hiç öğe kalmazsa kontrol hiçbir karşılaştırma yapmadan geçer; bu araç böyle bir durumu kontrol edilmedi diye bildirir.
Değer, dosyanın nereden geldiğini söylemez; yalnızca dosyanın özetlenen baytlara sahip olduğunu kanıtlar. Dosya değiştiğinde, örneğin bir kütüphane güncellendiğinde, değeri yeniden üretin ve öğeyle birlikte saklayın.
abc metni
abc metni UTF-8 ile 61 62 63 olmak üzere üç bayttır. sha256 seçip metin kutusuna abc yazın. Metnin integrity değeri tabloda gösterilen değerdir; sayfaya yapıştırılacak öğe bu değeri ve crossorigin için anonymous niteliğini taşır.
| Algoritma | abc için integrity değeri |
|---|---|
| sha256 | sha256-ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0= |
| sha384 | sha384-ywB1P0WjXou1oD1pmsZQBycsMqsO3tFjGotgWkP/W+2AhgcroefMI1i67KE0yCWn |
Sık sorulan sorular
Dosya değişince değeri de değiştirmem gerekir mi?
Evet. Değer tam olarak belirli bir bayt dizisi içindir; kütüphane güncellenirse, bir boşluk bile olsa yeni bir değer çıkar. Öznitelik yeni değeri taşımadığı sürece kontrol başarısız olur.
Hangi algoritmayı seçmeliyim?
Üç algoritmayı da her tarayıcı destekler (SRI bölüm 3.2). sha384, sha256'dan güçlü, sha512'den daha kısa bir özet üretir. Her biri için değer yazmak isterseniz Üçü birden seçeneğini kullanın; tarayıcı en güçlü olanı kontrol eder.
Değerde neden algoritma adı ve bir tire var?
Ad, tarayıcıya hangi özetin hesaplanacağını söyler. Algoritma adlarında tire olmadığı için ilk tire adı bitirir; base64 değeri ise URL uyumlu alfabesinde tire içerebilir (SRI bölüm 3.5).
Araç dosyamı bir sunucuya gönderiyor mu?
Hayır. Dosyayı tarayıcınız okur ve tarayıcının özet yöntemiyle (crypto.subtle) hesaplar. Sayfa ağ isteği yapmaz; yazdığınız ya da seçtiğiniz hiçbir şeyi saklamaz.
Sayfaya yapıştırılacak öğede neden crossorigin var?
SRI, başka bir kaynaktan gelen dosyalar için CORS kullanılmasını ister (bölüm 5.3); anonymous değeri tarayıcıya CORS kullanmasını söyler. Öğe, hem script hem de stil dosyası için bunu içerir.
Kaynaklar
- W3C, Subresource Integrity (Çalışma Taslağı, 20 Mart 2026): bölüm 3.2, 3.3, 3.5 ve 5.3
- RFC 4648, The Base16, Base32, and Base64 Data Encodings, bölüm 4
- MDN, SubtleCrypto.digest()
Rakamlar ve metin en son 10 Kasım 2026 Salı tarihinde kontrol edildi.