Base58 Kodlayıcı ve Çözücü
Girdi
Base58, kolay karıştırılan bazı karakterleri kullanmamak için tasarlanmış bir ikiliden metne kodlamadır. Bitcoin alfabesinde 0 O I l ile + / bulunmaz; başka sistemler aynı 58 simgeyi farklı sıraya dizer. Eski Bitcoin Base58Check adresleri ve IPFS CIDv0 dizeleri bilinen örneklerdir. Yalnızca tarayıcıda çalışan bu araç UTF-8 metnini veya kesin onaltılık baytları Bitcoin, Ripple ya da Flickr alfabesiyle dönüştürür ve seçilen alfabede bulunmayan karakterleri reddeder.
Base58 nasıl kodlanır ve çözülür
-
1
Baytları veya Base58 dizesini girin
Kodlama yönü onaltılık veya ham metin kabul eder; çözme yönü Base58 kabul eder.
-
2
Gerekirse alfabeyi seçin
Varsayılan Bitcoin Base58'idir; uyumluluk için Ripple ve Flickr varyantları vardır.
-
3
Dönüşümü çalıştırın
Base58 düzgün 5 veya 6 bitlik gruplara bölünmez; tek bir büyük-uçlu (big-endian) tam sayı olarak ele alınır ve tekrar tekrar 58'e bölünür.
-
4
Sonucu kopyalayın
Kodlanmış dizeler, baştaki sıfır baytlarını, Bitcoin alfabesindeki sıfır glifi olan baştaki `1` karakterleri olarak korur.
Bitcoin Base58 alfabesi
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Eksik olanlara dikkat edin: 0, O, I, l. Alfabedeki ilk karakter 1’dir ve 0 tam sayısını temsil eder.
Gerçekte nasıl çalışır
Base64 sabit bit gruplarıyla çalışırken Base58 tüm bayt dizesini tek bir büyük-uçlu (big-endian) tam sayı N olarak ele alır ve 58 tabanında ifade eder:
result = []
while N > 0:
result.prepend(alphabet[N mod 58])
N = N / 58
for each leading zero byte in input:
result.prepend(alphabet[0]) # i.e. '1'
Bu yüzden Base58 kodlamasını akış halinde işlemek kolay değildir; herhangi bir karakter üretebilmeden önce tüm sayıya ihtiyaç duyarsınız.
Base58 ve Base58Check
Eski bir P2PKH adresinin tipik Base58Check yükü 25 bayttır: 1 sürüm baytı, 20 özet baytı ve 4 sağlama toplamı baytı. Sağlama toplamı, sürüm ile özetin iki kez SHA-256 işleminden geçirilmiş değerinin ilk 4 baytıdır. Tam yük Base58 ile kodlandığında bilinen adres dizesi oluşur.
Bu araç yalnızca düz Base58 dönüştürür. Bir adresin sürümünü ve sağlama toplamını denetlemek için özel bir Base58Check doğrulayıcısı kullanın.
Alfabe varyantları
| Varyant | Nerede kullanılır | Bitcoin’e göre farklar |
|---|---|---|
| Bitcoin | BTC adresleri, IPFS CIDv0 | Temel |
| Ripple | XRP adresleri | Konumlar değiştirilmiş |
| Flickr | Kısa fotoğraf URL’leri | Küçük harf büyük harften önce |
Neden doğrudan Base64 kullanmayalım?
Base64 ikili ve kodlanmış metin arasında uzunluk açısından verimlidir (3 bayt başına 4 karakter). Base58’in biraz değişken ek yükü vardır, ama belirsiz karakter içermez; birinin adresi elle kopyalaması veya telefonda okuması gerektiğinde istediğiniz şey budur.
Sık Sorulan Sorular
Evrensel olarak değil. Dizeyi insanlar elle işlediğinde Base58 daha iyidir; makineler taşıdığında Base64 daha iyidir. Base64 karakter başına 6 bit, Base58 yaklaşık 5,86 bit kodlar; bu yüzden Base64 biraz daha kompakttır.
Base58 büyük bir tam sayıyı kodlar; bu yüzden yüksek bitlere bağlı olarak uzunluk bir-iki karakter değişir. Tipik P2PKH adresleri 34 karakterdir, ama 33 mümkündür.
Araç dizeyi ham baytlara çözebilir; her baytı kayıpsız görmek için onaltılık çıktıyı seçin. Sürümü veya sağlama toplamını denetlemez, bu yüzden başarılı çözme adresin geçerli olduğunu kanıtlamaz. Bunun için Base58Check doğrulayıcısı kullanın.
Evet. Girdinin başındaki her sıfır bayt çıktıda bir 1 karakterine dönüşür; 1 ile başlayan Bitcoin adresleri böyle çalışır.
İlgili Araçlar
Hash Oluşturucu
Kontrol toplamları ve karşılaştırmalar için kopyalamaya hazır özetlerle, metinden MD5, SHA-1, SHA-256, SHA-384, SHA-512 ve CRC32 hash değerleri oluşturun.
Şifreleme Tanımlayıcısı
Bir şifreli metin veya hash değerini yapıştırın; belirleyici muhtemel algoritmaları veya kodlamaları gösterir: MD5, SHA, bcrypt, AES, RSA, Base64 ve daha fazlası.
ETH'den USD'ye Çevirici
Ethereum'u (ETH) canlı ETH/USD kuruyla veya kendi girdiğiniz bir kurla ABD dolarına çevirin. Herhangi bir ETH miktarının USD karşılığını görün.
Dosya Hash Hesaplayıcı
Yapıştırdığınız metnin veya dosya içeriğinin MD5, SHA-1, SHA-256 ve SHA-512 hash değerlerini hesaplayarak indirmeleri ve dosya bütünlüğünü doğrulayın.
CSR Oluşturucu
PEM kodlu bir sertifika imzalama isteği ve eşleşen RSA özel anahtarı oluşturun. Ortak adı, kuruluş alanlarını ve anahtar boyutunu (2048, 3072 veya 4096 bit) belirtin.
HMAC Jeneratörü
API kimlik doğrulaması ve webhook'lar için bir mesaj ve gizli anahtar kullanarak HMAC imzaları (SHA-256, SHA-384, SHA-512, SHA-1, MD5) oluşturun.
Araç diğer dillerde mevcuttur
- Base58 인코더 및 디코더 [KO]
- Base58-kodare och avkodare [SV]
- مشفر ومفكك Base58 [AR]
- Koder i dekoder Base58 [PL]
- Base58-Encoder/Decoder [DE]
- Encodeur et décodeur Base58 [FR]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- Encoder dan Decoder Base58 [ID]
- Base58 encoder en decoder [NL]
- Base58エンコーダー・デコーダー [JA]
- Bộ mã hóa và giải mã Base58 [VI]
- Codificador e Decodificador Base58 [PT]
- Codificador y Decodificador Base58 [ES]
- Base58 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base58 [IT]
- Base58 编码器和解码器 [ZH]
- Кодировщик и декодировщик Base58 [RU]