araç köşesi

Base58 Kodlama ve Çözme (Bitcoin Alfabesi)

Metni ya da hex baytları Base58'e kodlayın, Base58 dizesini çözün; Base58Check sağlamasını doğrulayın

Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.

Nasıl çalışır?

Sol panele kodlanacak metni ya da çözülecek Base58 dizesini yapıştırın ve İşlem yönü ayarından Kodla ya da Çöz'ü seçin. Örneğin "hello" kelimesi Cn8eVZg olur; beş bayt yedi karaktere dönüşür. Anahtar, özet ya da adres gibi ikili veriyle çalışıyorsanız Veri biçimi ayarını Hex bayt yapın: 00 00 01 kodlandığında 112 çıkar, çünkü baştaki her sıfır bayt ayrı bir 1 olarak yazılır. Bir Bitcoin adresini ya da WIF özel anahtar biçimini denetlemek için Base58Check'i Var yapın ve Çöz'ü seçin: araç son 4 baytı ayırır, kalan verinin çift SHA-256 özetini hesaplar ve sonuç satırında sağlamanın GEÇERLİ ya da GEÇERSİZ olduğunu yazar. Tek harfi yanlış kopyalanmış bir adres bu denetimi geçemez. Dizede 0, O, I ya da l varsa araç bunun Base58 alfabesinde olmadığını ve kaçıncı karakter olduğunu söyler. Veriniz tarayıcınızın içinde işlenir; adres ya da anahtar hiçbir sunucuya gitmez.

Bu araç base58 kodlama, base58 decode, base58 encode aramalarıyla da biliniyor.

Base58 nedir?

Base58, bayt dizisini büyük bir tam sayı gibi okuyup 58 tabanında yazan kodlamadır. Alfabesi rakamlar ve harflerden oluşur ama 0, O, I ve l'yi içermez; noktalama işareti yoktur. Bit gruplarıyla çalışan Base64'ün aksine sayı tabanı çevirisi yaptığı için baştaki sıfır baytlar sayıda kaybolur; bu yüzden her biri ayrıca 1 karakteriyle yazılır. Bitcoin adresleri, IPFS kimlikleri ve Solana adresleri bu kodlamayı kullanır.

Base58Check nedir?

Base58Check, Base58'e hata yakalama ekleyen biçimdir. Verinin başına bir sürüm baytı konur, sonuna da verinin iki kez art arda alınmış SHA-256 özetinin ilk 4 baytı eklenir; ardından bütün Base58 ile yazılır. Çözen taraf özeti yeniden hesaplar ve son 4 baytla karşılaştırır. Eski tip Bitcoin adresleri (1… ve 3…) ve WIF biçimindeki özel anahtarlar Base58Check'tir.

Base58 ile Base58Check arasındaki fark nedir?

Base58 yalnız bir yazım biçimidir: baytları karışmaz karakterlerle yazar ama yanlış kopyalanan bir karakteri fark etmez, bozuk dize de başka bir geçerli sayı olarak çözülür. Base58Check aynı yazımın sonuna 4 baytlık bir sağlama ekler; çözerken sağlama yeniden hesaplanır ve tek karakterlik hata bile yakalanır. Bitcoin adresi, WIF anahtarı gibi para kaybına yol açabilecek dizeler bu yüzden Base58Check ile yazılır, IPFS kimlikleri ise düz Base58'dir.

Base58Check sağlaması neyi kanıtlar, neyi kanıtlamaz?

Base58Check, verinin sonuna SHA-256 özetinin özetinden alınan 4 bayt ekler. Adres elle ya da eksik kopyalandığında bu 4 bayt artık tutmaz; yanlış bir adresin sağlamayı tesadüfen geçme olasılığı yaklaşık 4,3 milyarda birdir. Bu yüzden GEÇERLİ sonucu, dizenin yazım hatası içermediğini neredeyse kesin olarak söyler.

Sağlama, adresin kime ait olduğunu ya da hangi ağda kullanıldığını söylemez. Çözülen verinin ilk baytı sürüm baytıdır (Bitcoin ana ağ adresinde 00, bu yüzden adres 1 ile başlar) ve ağı belirler; aynı yapıyı taşıyan başka bir ağın adresi de sağlamayı geçer. Para göndermeden önce adresi her zaman karşı tarafın gösterdiği yerden, bu araçla değil kendi cüzdanınızla karşılaştırın. bc1 ile başlayan yeni tip adresler Base58 değil Bech32'dir; bu araç onları çözmez.

Metin mi, hex bayt mı seçmelisiniz?

Base58'in asıl kullanım alanı ikili veridir: Bitcoin adresleri, özel anahtarlar, IPFS içerik kimlikleri (Qm ile başlayan CIDv0) ve Solana hesap adresleri. Bunları çözdüğünüzde okunur bir yazı çıkmaz, bu yüzden Hex bayt seçin. Metin seçiliyken çözülen baytlar geçerli UTF-8 değilse araç yine hex'e döner ve sonuç satırında bunu söyler.

Kendi yazdığınız bir metni kısa ve karışmaz bir kimliğe çevirmek istiyorsanız Metin (UTF-8) seçin; Türkçe harfler UTF-8'de iki bayt tuttuğu için sonuç biraz uzar. Base58 tüm veriyi tek bir sayı gibi işlediğinden çok uzun metinlerde yavaşlar; birkaç kilobaytın üzerindeki veri için Base64 daha uygundur.

Sık sorulanlar

Base58 dizesi nasıl çözülür?

Dizeyi sol panele yapıştırın, İşlem yönü olarak Çöz'ü seçin. Bir adres ya da anahtar çözüyorsanız Veri biçimini Hex bayt yapın; çıktı bayt bayt hex olarak gelir. Dize Base58Check ise sağlamanın geçerliliği sonuç satırında yazılır.

Base58'de neden 0, O, I ve l harfleri yok?

Bu dört karakter birçok yazı tipinde birbirine benzer: sıfır ile büyük O, büyük I ile küçük l. Bitcoin'in tasarımında adreslerin elle okunup yazılabilmesi hedeflendiği için bunlar alfabeden çıkarıldı. + ve / gibi işaretler de yoktur; böylece adres çift tıklamayla tek parça seçilir.

Bitcoin adresinin geçerli olup olmadığını nasıl kontrol ederim?

Adresi yapıştırın, Çöz'ü, Hex bayt'ı ve Base58Check için Var'ı seçin. Sonuç satırında GEÇERLİ ✓ yazıyorsa adres yazım hatası içermiyor demektir. Bu kontrol yalnız 1 ya da 3 ile başlayan eski tip adresler içindir; bc1 ile başlayanlar farklı bir biçimdir.

Base58 ile Base64 arasındaki fark nedir?

Base64 veriyi 6 bitlik gruplara böler, hızlıdır ve + / = işaretlerini kullanır. Base58 tüm veriyi büyük bir sayı olarak 58 tabanına çevirir; işaret kullanmaz ve karışan harfleri dışarıda bırakır, ama daha yavaştır. Uzun veri ve dosya için Base64, kısa ve insanların okuyacağı kimlikler için Base58 seçilir.