Кодируйте текст в Base64 формат
Коротко об инструменте
Кодирование в Base64 нужно, когда строку предстоит положить туда, где допустима только безопасная латиница: заголовок Basic Auth, поле data в манифесте Kubernetes, переменная окружения в CI, тема письма. Вставьте текст, нажмите «Кодировать» — и получите строку, готовую к вставке. Кириллица кодируется как UTF-8, поэтому при обратном разборе текст восстанавливается символ в символ. Всё считается во вкладке браузера. Смотрите также: декодировать строку Base64 обратно, закодировать целый файл в Base64, percent-encoding для параметров ссылки.
Нет, это кодирование, а не шифрование: ключа нет, и любой желающий разворачивает строку обратно за секунду. Значения в Kubernetes secret закодированы именно так и защищёнными не считаются. Base64 решает задачу совместимости — протащить произвольные байты через канал, рассчитанный на текст, — но конфиденциальности не даёт.
Текст сначала превращается в байты UTF-8, и уже эти байты кодируются. Русская буква занимает два байта, эмодзи — четыре, поэтому строка на кириллице даёт заметно более длинный результат, чем такая же по количеству символов латинская. При обратном декодировании как UTF-8 текст восстанавливается полностью.
Каждые три байта превращаются в четыре символа алфавита Base64, то есть объём растёт примерно на 33 процента, плюс один-два знака равенства для выравнивания в конце. Это стоит учитывать, если значение уходит в заголовок запроса или в переменную окружения, где длина ограничена.
Не напрямую. Там применяется вариант base64url, где плюс заменён на дефис, слэш на подчёркивание, а выравнивающие знаки равенства отброшены — иначе символы придётся дополнительно экранировать. Замените эти три вещи вручную, либо для параметров URL используйте страницу «URL Encode».
Здесь результат выдаётся одной непрерывной строкой, и для заголовков, JSON и переменных окружения это правильный вариант. Разбивка на строки по 76 символов — требование старого почтового стандарта MIME; если значение готовится именно для письма, переносы придётся расставить самостоятельно.
Прогоните её в обратную сторону на странице «Base64 в текст» и сравните с исходником: если возвращается ровно тот же текст, включая пробелы в конце и переносы строк, кодирование прошло без потерь. Это самая быстрая проверка перед тем, как класть значение в конфиг стенда.
До: admin:hunter2
После: Authorization: Basic YWRtaW46aHVudGVyMg==
До: postgres://app:secret@db:5432/prod
После: cG9zdGdyZXM6Ly9hcHA6c2VjcmV0QGRiOjU0MzIvcHJvZA==
Оценка и фидбек помогают понять, что улучшать дальше.