Base58 Kodlayıcı ve Kod Çözücü

Metni, onaltılık baytları veya küçük dosyaları Base58 biçimine dönüştürün ve geri çevirin. Bitcoin, Flickr veya Ripple alfabesini seçin; isterseniz bir Base58Check sağlama toplamı ekleyin ya da doğrulayın.

Tamamen tarayıcınızda çalışır. Hiçbir veri yüklenmez.

Nasıl kullanılır

  1. Metni veya baytları Base58'e dönüştürmek için "Kodla", bir Base58 dizesini veriye geri çevirmek için "Kodu çöz" seçeneğini seçin.
  2. Alfabeyi seçin. Varsayılan Bitcoin alfabesi, IPFS ve Solana tarafından da kullanılır.
  3. Girdinizi yazın veya yapıştırın. Hash veya açık anahtar gibi ham baytlarınız varsa girdi biçimini "Onaltılık" olarak değiştirin.
  4. "Base58Check sağlama toplamı" seçeneğini yalnızca dize 4 baytlık bir sağlama toplamı içeriyorsa açın, ardından sonucu kopyalayın veya indirin.

Base58 nedir?

Base58, Bitcoin için geliştirilmiş bir ikili veriden metne kodlama yöntemidir. Alfabesi, rakamlar ve Latin harflerinden oluşan 62 karakterden birbirine kolayca karıştırılabilen dört karakterin çıkarılmasıyla elde edilir: 0 (sıfır), O (büyük O harfi), I (büyük I harfi) ve l (küçük L harfi). Ayrıca +, / veya = içermediği için bir Base58 dizesi çift tıklamayla seçilebilir ve kaçış uygulanmadan bir URL'ye eklenebilir.

Base58, Base64 kodlamasının aksine girdiyi bit gruplarına bölmez. Girdinin tamamı tek bir büyük sayı olarak ele alınır ve 58 tabanında yazılır; bu nedenle dolgu yoktur ve tek bir bayttaki değişiklik çıktıdaki birçok karakteri etkileyebilir. Baştaki sıfır baytların sayısal bir değeri olmadığından, korunmaları için her biri alfabenin ilk karakteriyle (Bitcoin alfabesinde 1) yazılır. Çıktı, girdinin yaklaşık 1,37 katı büyüklüğündedir.

Base58 nerelerde kullanılır?

  • Bitcoin. Eski tip (legacy) adresler ve WIF özel anahtarları Base58Check biçimindedir: sürüm baytı ve sağlama toplamı eklenmiş Base58.
  • IPFS. Sürüm 0 içerik tanımlayıcısı (CIDv0), bir SHA-256 multihash değerinin Base58 biçimidir; bu CID'lerin 46 karakter uzunluğunda olması ve Qm ile başlaması bundandır.
  • Solana. Açık anahtarlar, hesap adresleri ve işlem imzaları sağlama toplamı olmadan, düz Base58 ile yazılır. 32 baytlık bir anahtar genellikle 43 veya 44 karaktere dönüşür.
  • Flickr ve XRP Ledger. Flickr kısa bağlantıları Flickr alfabesini, XRP adresleri ise Ripple alfabesini kullanır; XRP adreslerinin r ile başlamasının nedeni budur.

Base58 ile ham baytlar arasında geçiş yapmak için Base58'den Hex'e ve Hex'ten Base58'e araçlarını kullanın. Yalnızca harf ve rakamlardan oluşması yeterli olan tanımlayıcılar için Base62 ile de karşılaştırma yapabilirsiniz.

Base58 alfabeleri

AlfabeSırasıyla karakterler
Bitcoin123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Flickr123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ
Ripplerpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz

Üçü de aynı 58 karakteri farklı bir sırayla kullanır; bu nedenle bir alfabeyle kodlanmış bir dize, başka bir alfabeyle çözüldüğünde farklı baytlar verir ya da hiç çözülemez.

Kodda Base58 kullanımı

# Python (kurulum: pip install base58)
import base58
base58.b58encode(b'hello')      # sonuç: b'Cn8eVZg'
base58.b58decode('Cn8eVZg')     # sonuç: b'hello'

// JavaScript (kurulum: npm install bs58)
import bs58 from 'bs58';
bs58.encode(new TextEncoder().encode('hello'));

Teknik özellikler

Alfabe1-9 A-Z a-z (0 O I l hariç)
Çıktı boyutuYaklaşık %137 (büyük sayı dönüşümü)
DolguYok (baştaki sıfır baytlar 1 olur)
StandartBitcoin Base58
Büyük/küçük harf duyarlıEvet

Örnekler

Girdi (UTF-8)Çıktı
Hello, World!72k1xXWG59fYdzSNoA
Base64.isr1Nm3AS7ZcnN
你好2xuZUfBKa

Sıkça sorulan sorular

Baştaki sıfır baytlar neden 1 olur?
Base58 girdiyi tek bir sayıya dönüştürür ve baştaki sıfır baytlar bu sayının değerini değiştirmez. Korunmaları için baştaki her sıfır bayt, alfabenin ilk karakteriyle yazılır; Bitcoin alfabesinde bu karakter 1 rakamıdır. 32 sıfır baytın art arda 32 adet 1 olarak kodlanmasının nedeni budur.
Base58 büyük/küçük harfe duyarlı mı?

Evet. Büyük ve küçük harfler farklı basamakları temsil eder; bu nedenle tek bir karakterin büyük/küçük harf durumunu değiştirmek, çözülen baytları değiştirir veya dizeyi geçersiz kılar.

Base58 ile Base58Check arasındaki fark nedir?
Base58Check, kodlamadan önce veriye 4 baytlık bir sağlama toplamı (çift SHA-256 özetinin ilk baytları) ekler; böylece yazım hataları tespit edilebilir. Burada "Base58Check sağlama toplamı" seçeneğini açın veya ayrıntılar için Base58Check sayfasına bakın.
Girdi neden yaklaşık 20 KB ile sınırlı?
Girdinin tamamı tek bir büyük sayı olduğu için gereken işlem miktarı, uzunluğun karesiyle artar. Base58 dosyalar için değil; anahtarlar, hash değerleri ve adresler için tasarlanmıştır. Büyük veriler için Base64 veya Base85 kullanın.