Nasıl kullanılır
- Base58 dizesini girdi alanına yapıştırın. Boşluklar ve satır sonları yok sayılır.
- Çözülen baytları çıktıda onaltılık olarak okuyun.
- Hex değerini kopyalayın veya hex'i yeniden Base58'e çevirmek için "Girdi ve çıktının yerini değiştir" düğmesine basın.
Base58 nasıl hex'e dönüşür
Base58, dizenin tamamını 0, O, I ve l karakterlerini dışarıda bırakan 58 karakterlik Bitcoin alfabesiyle yazılmış tek bir büyük sayı olarak okur. Hex'e dönüştürme, aynı sayıyı bayt başına iki hex basamağıyla 16 tabanında yazar; bu nedenle hiçbir şey eklenmez veya kaybolmaz.
Verinin başındaki sıfır baytların sayısal bir değeri yoktur; bu yüzden Base58 her birini, alfabesinin ilk karakteri olan baştaki bir 1 olarak kaydeder. Kod çözücü baştaki her 1 karakterini yeniden bir 00 baytına çevirir. Örneğin 115Q, 0000ff olarak çözülür; art arda otuz iki 1 karakterinden oluşan Solana System Program adresi ise 32 sıfır bayta çözülür. Dönüştürme tarayıcınızda yerel olarak çalışır.
Bitcoin, Solana ve IPFS örnekleri
Bölümleri göstermek için aşağıdaki hex değerlerine boşluklar eklenmiştir:
Bitcoin adresi (P2PKH, genesis bloğu)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
00 62e907b15cbf27d5425399ebf6f0fb50ebb88f18 c29b7d93
sürüm | hash160 (20 bayt) | sağlama toplamı (4 bayt)
Solana açık anahtarı (SPL Token programı)
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
06ddf6e1d765a193d9cbe146ceeb79ac1cb485ed5f5b37913a8cf5857eff00a9
32 bayt, sürüm baytı yok, sağlama toplamı yok
IPFS CIDv0
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
12 20 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
sha2-256 | uzunluk 32 | özet
Eski tip (legacy) Bitcoin adresleri, sürüm baytları 00 olduğu için 1 ile başlar. P2SH adresleri 3 ile başlar ve 05 sürümüne çözülür.
Base58Check sağlama toplamları baytlarda kalır
Bitcoin adresleri ve WIF özel anahtarları Base58Check kullanır: kodlamadan önce, yükün çift SHA-256 özetinden alınan dört sağlama toplamı baytı sona eklenir. Bu sayfa düz Base58 kullandığı için sağlama toplamı diğer veriler gibi çözülür ve son 8 hex basamağı olarak görünür. Eski tip bir adresin hash160 değeri, baştaki 00 ile sağlama toplamı arasındaki 40 hex basamağıdır.
Bir adresin bozulmamış olduğunu doğrulamak ve yükü sağlama toplamı olmadan almak için adresin kodunu Base58Check sayfasında çözün. Solana anahtarları ve IPFS hash değerleri sağlama toplamı içermez; bu nedenle onlar için doğru seçim düz Base58'dir.
Kodda Base58'den hex'e dönüştürme
# Python (kurulum: pip install base58)
import base58
base58.b58decode('115Q').hex() # sonuç: '0000ff'
// JavaScript (kurulum: npm install bs58)
import bs58 from 'bs58';
Buffer.from(bs58.decode('115Q')).toString('hex'); // sonuç: '0000ff'
Sıkça sorulan sorular
Bir Bitcoin adresi neden 20 yerine 25 bayta çözülüyor?
Eski tip bir adres 1 baytlık sürüm, açık anahtarın 20 baytlık hash160 değeri ve 4 baytlık sağlama toplamı içerir. Düz Base58 bunların üçünü de döndürür; bu nedenle 50 hex basamağı elde edersiniz. Hash160 değeri, ilk bayt ile son dört bayt arasında kalan kısımdır.
Baştaki her 1 neden 00 oluyor?
Base58'de 1 karakteri sıfır değerini temsil eder. Veri düz bir sayı olarak ele alınsaydı baştaki sıfır baytlar kaybolurdu; bu nedenle her biri 1 olarak yazılır ve kod çözülürken yeniden 00 baytına çevrilir.
Neden geçersiz karakter hatası alıyorum?
Bir Solana açık anahtarı ne kadar uzundur?
Tam olarak 32 bayt, yani 64 hex basamağı. Base58'de bu genellikle 43 veya 44 karakterdir. System Program adresinin gösterdiği gibi, sıfır baytlarla başlayan anahtarlar daha kısa olabilir.