Base64'ten Hex'e (ve Hex'ten Base64'e)
Base64 ya da base64url dizesini bayt bayt hex'e, hex dizisini Base64'e çevirin
Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.
Bu araç işinizi gördü mü?
Teşekkürler, geri bildiriminiz alındı.
Nasıl çalışır?
Sol panele Base64 dizesini yapıştırın; Çeviri yönü Base64 → Hex iken sağ panelde baytların hex yazımı çıkar. Örneğin SGk= iki bayttır ve 4869 olarak görünür; sonuç satırı "2 bayt · 16 bit" diye yazar. Ters yönde 4869 yazıp Hex → Base64'ü seçerseniz yine SGk= elde edersiniz. JWT parçaları ve URL'lerdeki base64url dizeleri - ve _ karakterlerini kullanır, sondaki = dolgusunu yazmaz; araç ikisini de kendiliğinden tanır, ayrıca bir ayar gerekmez. Hex tarafında boşluk, iki nokta, virgül ve 0x önekleri temizlenir: 0x48, 0x69 ile 48:69 aynı sonucu verir. Bir imzanın, anahtarın ya da SHA-256 özetinin Base64 hâlini hex ile karşılaştırmanız gerektiğinde bu araç baytları metin gibi yorumlamadan, olduğu gibi gösterir. Dizede alfabede olmayan bir karakter ya da tek sayıda hex hanesi varsa kaçıncı karakter olduğu yazılır. Veriniz tarayıcınızda işlenir, hiçbir sunucuya gitmez.
Bu araç base64 to hex, hex to base64, base64url decode aramalarıyla da biliniyor.
Base64 nedir?
Base64, ikili veriyi yalnız harf, rakam ve iki işaretle yazmanın standart yoludur (RFC 4648). Üç bayt, yani 24 bit, dört adet 6 bitlik parçaya bölünür ve her parça 64 karakterlik alfabeden bir karaktere karşılık gelir. Sonuç verinin yaklaşık üçte bir fazlası kadar uzundur. E-posta ekleri, JSON içindeki dosyalar, sertifikalar ve API imzaları çoğunlukla Base64 olarak taşınır.
Hex (onaltılık) nedir?
Hex, her baytı 0-9 ve a-f hanelerinden oluşan tam iki karakterle yazar: 0 baytı 00, 255 baytı ff olur. Base64'e göre daha uzundur (bayt başına iki karakter) ama okunması kolaydır, çünkü her bayt ayrı ayrı görülür ve sayılabilir. Özet (hash) değerleri, MAC adresleri, renk kodları ve hata ayıklama çıktıları bu yüzden hex yazılır.
Base64 ile hex arasındaki fark nedir?
İkisi de aynı baytları yazının içine koymanın yoludur, fark yoğunluktadır. Hex her baytı iki karakterle yazar; 32 baytlık bir özet 64 karakter olur. Base64 üç baytı dört karakterle yazar; aynı özet 44 karakter tutar. Hex her baytı ayrı gösterdiği için okunması ve karşılaştırılması kolaydır, Base64 ise yer kazandırdığı için JSON, e-posta ve URL'de tercih edilir. Aynı değerin iki yazımı karşılaştırılacaksa ikisini de aynı biçime çevirmek gerekir.
Neden Base64 → metin değil de Base64 → hex?
Base64 bir dosyanın, imzanın ya da anahtarın baytlarını taşır; bu baytlar çoğu zaman okunur bir yazı değildir. Metin çözücüsüne verildiklerinde anlamsız işaretler ya da � karakterleri çıkar ve hangi baytın ne olduğu kaybolur. Hex ise her baytı iki haneyle, hiçbir yorum katmadan gösterir: 32 baytlık bir HMAC-SHA256 imzası tam 64 hex hanesidir.
Bu yüzden bir webhook imzasını, bir sertifika parmak izini ya da bir özet değerini iki farklı sistemde karşılaştırırken ikisini de hex'e çevirmek en güvenli yoldur. Bir taraf Base64 (örneğin 44 karakterlik bir SHA-256), öbür taraf hex (64 hane) veriyorsa bu araç ikisini aynı dile getirir.
base64url ve dolgu: aynı veri, iki yazım
Standart Base64'teki + ve / işaretleri URL'de özel anlam taşır, = de sorgu dizesinde ayraçtır. Bu yüzden JWT, OAuth ve birçok API base64url kullanır: + yerine -, / yerine _ yazılır ve sondaki = dolgusu atılır. İki yazım aynı baytları taşır; SGk= ile SGk aynı iki baytı gösterir.
Hex → Base64 yönünde hangi türü seçeceğiniz veriyi nereye koyacağınıza bağlıdır: bir JSON alanına ya da e-postaya standart, bir URL'ye ya da JWT'ye base64url. Karşı taraf hangisini beklediğini belgesinde söyler; yanlış tür çoğu zaman "geçersiz karakter" ya da "imza uyuşmuyor" hatası olarak döner.
Sık sorulanlar
Base64 hex'e nasıl çevrilir?
Base64 dizesini sol panele yapıştırın; yön Base64 → Hex iken hex sonucu sağ panelde anında görünür. Her bayt iki hex hanesidir, bu yüzden hex uzunluğu bayt sayısının iki katıdır. Boşluklu ya da büyük harf yazımı Hex yazımı ayarından seçebilirsiniz.
Base64 dizesi kaç bayt eder?
Her 4 Base64 karakteri 3 bayttır; sondaki her = işareti bir bayt eksiltir. 44 karakterlik ve tek = ile biten bir dize 32 bayttır, yani bir SHA-256 özeti. Araç bayt ve bit sayısını sonuç satırında kendisi yazar.
JWT içindeki imzayı hex olarak nasıl görürüm?
JWT üç parçadır ve noktalarla ayrılır; imza sonuncusudur. Son noktadan sonraki kısmı kopyalayıp yapıştırın. İmza base64url'dir (- _ kullanır, dolgusuzdur); araç bunu kendiliğinden tanır ve baytları hex olarak gösterir.
Yapıştırdığım anahtar ya da imza bir yere gönderiliyor mu?
Hayır. Çeviri tarayıcınızın içinde yapılır; bu sayfadaki araç kodu ağa istek atamaz. Yine de gizli anahtarları paylaşılan bilgisayarlarda panoda bırakmamaya özen gösterin.