Base58 Kodlayıcı ve Çözücü
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
Sayıdan Harfe Şifre
Bulmacalar, bilmeceler ve kaçış odası ipuçları için A=1, B=2 şifresiyle (A1Z26) sayıları harflere, harfleri sayılara çevirin.
Metin Şifreleme Aracı
Metin mesajlarını bir parola kullanarak AES ile şifreleyin ve çözün; böylece yalnızca alıcı okuyabilir.
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.
Sezar Şifreleyici
Sezar şifresiyle metin şifreleyin ve çözün. 1-25 arası tüm kaydırmaları destekler, ROT13 özel durumunu içerir, noktalama işaretlerini ve büyük/küçük harfleri korur.
PGP Anahtar Oluşturucu
Curve25519, RSA 2048 veya RSA 4096 ile ASCII zırhlı bir OpenPGP anahtar çifti ve iptal sertifikası oluşturun.
Vigenère Şifre Kodlayıcı
Mesajları klasik Vigenère şifresiyle bir anahtar sözcük kullanarak şifreleyin ve çözün. Latin A-Z harflerini kaydırır; büyük/küçük harfi, boşlukları ve noktalama işaretlerini korur.
Araç diğer dillerde mevcuttur
- Base58 encoder en decoder [NL]
- Base58-Encoder/Decoder [DE]
- Base58-kodare och avkodare [SV]
- Encoder dan Decoder Base58 [ID]
- Codificador y Decodificador Base58 [ES]
- Base58 인코더 및 디코더 [KO]
- Bộ mã hóa và giải mã Base58 [VI]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- مشفر ومفكك Base58 [AR]
- Koder i dekoder Base58 [PL]
- Encodeur et décodeur Base58 [FR]
- Base58エンコーダー・デコーダー [JA]
- Codificador e Decodificador Base58 [PT]
- Base58 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base58 [IT]
- Кодировщик и декодировщик Base58 [RU]
- Base58 编码器和解码器 [ZH]