Кодировщик и декодировщик Base58

Декодировать Base58

О Base58

Что такое Base58?

Base58 рассматривает последовательность байтов как большое целое число и записывает его алфавитом Bitcoin 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Начальные нулевые байты становятся начальными символами 1 и сохраняются при обратном преобразовании.

Зачем использовать Base58?

Используйте Base58 для компактных идентификаторов, которые копируют или вводят вручную: символы 0, O, I и l исключены. Это обычный Base58 с алфавитом Bitcoin, не Base58Check: версии и контрольной суммы нет, другие алфавиты Base58 несовместимы.

Base58 в JavaScript

// npm install bs58
import bs58 from 'bs58';

const encoded = bs58.encode(Buffer.from('Hello'));
console.log(encoded);
// Output: 9Ajdvzr

const decoded = Buffer.from(bs58.decode('9Ajdvzr')).toString('utf8');
console.log(decoded);
// Output: Hello
				

Base58 в Go

package main

import (
	"fmt"

	"github.com/btcsuite/btcutil/base58"
)

func main() {
	encoded := base58.Encode([]byte("Hello"))
	fmt.Println(encoded)
	// Output: 9Ajdvzr

	decoded := base58.Decode("9Ajdvzr")
	fmt.Println(string(decoded))
	// Output: Hello
}
				

Base58 в PHP

<?php
// composer require tuupola/base58
require 'vendor/autoload.php';

use Tuupola\Base58;

$base58 = new Base58(["characters" => Base58::BITCOIN]);

$encoded = $base58->encode("Hello");
echo $encoded . "\n";
// Output: 9Ajdvzr

$decoded = $base58->decode("9Ajdvzr");
echo $decoded . "\n";
// Output: Hello