Base64 по RFC 4648 преобразует каждые три байта в четыре ASCII-символа из A-Z, a-z, 0-9, + и /. Неполная последняя группа дополняется знаком =, позволяя передавать произвольные байты в текстовых форматах.
Используйте Base64 для вложений MIME, полей JSON, сертификатов и Data URL, где байты должны быть текстом. Размер возрастает примерно на 33 %, а сжатия, шифрования и проверки целостности нет; декодер требует стандартный алфавит и корректное заполнение.
# Encoding
echo -n "Hello, World!" | base64
# Output: SGVsbG8sIFdvcmxkIQ==
# Decoding
echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d
# Output: Hello, World!
// Encoding
let encoded = btoa("Hello, World!");
console.log(encoded);
// Output: SGVsbG8sIFdvcmxkIQ==
// Decoding
let decoded = atob("SGVsbG8sIFdvcmxkIQ==");
console.log(decoded);
// Output: Hello, World!
package main
import (
"encoding/base64"
"fmt"
)
func main() {
// Encoding
encoded := base64.StdEncoding.EncodeToString([]byte("Hello, World!"))
fmt.Println(encoded)
// Output: SGVsbG8sIFdvcmxkIQ==
// Decoding
decoded, _ := base64.StdEncoding.DecodeString("SGVsbG8sIFdvcmxkIQ==")
fmt.Println(string(decoded))
// Output: Hello, World!
}
// Encoding
$encoded = base64_encode("Hello, World!");
echo $encoded ."\n";
// Output: SGVsbG8sIFdvcmxkIQ==
// Decoding
$decoded = base64_decode("SGVsbG8sIFdvcmxkIQ==");
echo $decoded . "\n";
// Output: Hello, World!