Nasıl kullanılır
- 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.
- Alfabeyi seçin. Varsayılan Bitcoin alfabesi, IPFS ve Solana tarafından da kullanılır.
- 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.
- "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
Qmile 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
rile 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
| Alfabe | Sırasıyla karakterler |
|---|---|
| Bitcoin | 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz |
| Flickr | 123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ |
| Ripple | rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz |
Üçü 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
| Alfabe | 1-9 A-Z a-z (0 O I l hariç) |
|---|---|
| Çıktı boyutu | Yaklaşık %137 (büyük sayı dönüşümü) |
| Dolgu | Yok (baştaki sıfır baytlar 1 olur) |
| Standart | Bitcoin Base58 |
| Büyük/küçük harf duyarlı | Evet |
Örnekler
| Girdi (UTF-8) | Çıktı |
|---|---|
Hello, World! | 72k1xXWG59fYdzSNoA |
Base64.is | r1Nm3AS7ZcnN |
你好 | 2xuZUfBKa |
Sıkça sorulan sorular
Baştaki sıfır baytlar neden 1 olur?
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.