Base64 Dizesi Doğrulayıcı

Geçerli Base64 olup olmadığını kontrol etmek için bir dize yapıştırın.

Nasıl hesaplanır?

Araç bir dizeyi standart Base64'e göre üç adımda denetler. Önce baştaki ve sondaki boşluklar kırpılır. İkinci olarak uzunluk 4'ün katı olmalı ve dize [A-Za-z0-9+/]*={0,2} kalıbına uymalıdır; yani yalnızca 64 karakterlik alfabe ve sonda en fazla iki = işareti bulunabilir. Üçüncüsü, dize katı biçimde çözülebilmelidir. Sonuç olarak Geçerli: Evet ya da Hayır, kırpılmış dizenin uzunluğu ve çözülmüş bayt sayısı verilir (dize geçersizse 0). Çözülmüş boyut bayt = uzunluk ÷ 4 × 3 − dolgu formülünü izler; dolgu, = işareti sayısıdır. Boş dize sonuç vermez. Dizenin içindeki boşluk ya da satır sonları, URL güvenli - ve _ karakterleri ve eksik dolgu dizeyi geçersiz yapar. Araç çözülmüş metni göstermez ve kullanılmayan son bitlerin sıfır olup olmadığını denetlemez.

Örnek hesaplama

SGVsbG8gV29ybGQ= dizesini denetleyelim. Adım 1: karakterleri sayın; girdi uzunluğu 16 çıkar, yani 4'ün katıdır. Adım 2: her karakter standart alfabeye aittir ve tek = sondadır. Adım 3: dize sorunsuz çözülür, bu yüzden araç geçerli = 1 gösterir. Adım 4: çözülmüş boyut 16 ÷ 4 × 3 − 1 = 11 bayttır. (Çözüldüğünde metin Hello World'dür.)

Bu örneği dene →

Sık yapılan hatalar

  • Birçok JWT parçasında olduğu gibi - ve _ kullanan URL güvenli Base64 yapıştırmak. Araç yalnızca standart alfabeyi denetler, bu yüzden SGVsbG8_V29-bGQ= geçersiz çıkar; önce - yerine +, _ yerine / koyun.
  • Sondaki = dolgusunu silmek. SGVsbG8gV29ybGQ (15 karakter), uzunluğu 4'ün katı olmadığı için geçersizdir. Birçok kütüphane bunu kabul eder, ancak standart biçim dolguyu gerektirir.
  • E-postalarda veya sertifikalarda görülen satırlara bölünmüş Base64'ü olduğu gibi yapıştırmak. Metnin içindeki satır sonları ve boşluklar denetimi başarısız kılar; önce satırları tek satırda birleştirin.
  • Bir fazladan = eklemek. SGVsbG8gV29ybGQ== 17 karakterdir ve geçersizdir; en fazla iki dolgu işaretine izin verilir.
  • Geçerli: Evet sonucunu verinin anlamlı olduğunun kanıtı sanmak. Bu yalnızca dizenin biçimce doğru Base64 olduğunu söyler; baytlar yine de rastgele olabilir ya da beklediğiniz dosya olmayabilir.

Bu hesaplama hakkında

Base64 kodlaması, her 3 baytık ikili veriyi 64 karakterlik bir alfabeden (standart biçimde A–Z, a–z, 0–9, + ve /) seçilen 4 ASCII karaktere dönüştürür; girdi uzunluğu 3'ün katı değilse son grup = karakterleriyle doldurulur (padding). Geçerli bir Base64 dizesinin uzunluğu bu yüzden 4'ün katı olmalı, yalnızca bu alfabedeki karakterleri kullanmalı ve doğru padding kurallarına uymalıdır — bu hesaplayıcı üçünü de kontrol eder ve çözülmüş bayt uzunluğunu bildirir.

Geliştiriciler bunu bozuk API yanıtlarını, JWT token'larını veya data URI'lerini hata ayıklamak için, ayrıca MIME kodlu e-posta eklerini veya JSON ya da XML içine gömülü ikili verileri işlerken kullanır; tek bir bozuk karakter veya eksik padding karakteri, sonraki adımda kod çözmeyi sessizce bozabilir.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    Bu kontrol, dolgu karakterli standart alfabe içindir. + ve / yerine - ve _ kullanan URL uyumlu bir dize ya da sondaki = işaretleri atılmış bir dize, birçok kütüphane kabul etse bile geçerli değil olarak gösterilir. Metnin içindeki satır sonları da kabul edilmez; yalnızca baştaki ve sondaki boşluklar kırpılır. Hangi varyantı doğruluyorsunuz? URL uyumlu desteğe ihtiyacınız varsa bize yazın.

Popüler hesaplayıcılar

Tüm Hesaplayıcılar