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

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

О Base85

Что такое Base85?

Ascii85 в стиле Adobe преобразует блок из четырёх байтов в пять символов от ! до u. Инструмент выдаёт текст без обёртки, заменяет четыре нулевых байта на z, обрабатывает короткий последний блок и принимает необязательную обёртку <~ ~> и пробелы.

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

Используйте Ascii85, когда двоичные данные должны быть печатным текстом с увеличением примерно на 25 % вместо 33 % у Base64. Пунктуацию часто приходится экранировать, варианты вроде Z85 несовместимы, а сжатия, секретности и проверки целостности нет.

Base85 в JavaScript

// npm install ascii85
const ascii85 = require('ascii85');

const encoded = ascii85.encode(Buffer.from('Hello')).toString();
console.log(encoded);
// Output: 87cURDZ

const decoded = ascii85.decode('87cURDZ').toString();
console.log(decoded);
// Output: Hello
				

Base85 в Go

package main

import (
	"encoding/ascii85"
	"fmt"
)

func main() {
	dst := make([]byte, ascii85.MaxEncodedLen(len("Hello")))
	n := ascii85.Encode(dst, []byte("Hello"))
	encoded := string(dst[:n])
	fmt.Println(encoded)
	// Output: 87cURDZ

	decoded := make([]byte, len("87cURDZ"))
	n, _, _ = ascii85.Decode(decoded, []byte("87cURDZ"), true)
	fmt.Println(string(decoded[:n]))
	// Output: Hello
}
				

Base85 в PHP

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

$base85 = new Tuupola\Base85;

$encoded = $base85->encode("Hello");
echo $encoded . "\n";
// Output: 87cURDZ

$decoded = $base85->decode("87cURDZ");
echo $decoded . "\n";
// Output: Hello