Tech Help

Base64 не е шифроване: какво всъщност прави

Base64 е кодиране, не шифроване. Защо не крие пароли, защо расте размерът и как да го декодирате.

Кратък отговор

Base64 е кодиране, не шифроване. Превръща двоични данни в текстова форма, която текстови системи могат да пазят или изпращат.

Който има текста Base64, обикновено може да го декодира. Не трябват парола или таен ключ.

Не използвайте Base64 за защита на пароли, ключове API, токени за достъп, лични съобщения или други тайни. Това е средство за представяне, не механизъм за сигурност.

Ако низът изглежда разбъркан, това не значи, че е шифрован. Base64 само променя как байтовете се пишат като текст.

Какво всъщност прави Base64?

Base64 кодира двоични данни с ограничен ASCII набор: A–Z, a–z, 0–9, + и /. Допълване с = може да се появи, за да остане дължината на изхода кратна на 4. Допълването не винаги е там—къси входове могат да ползват едно или две =, а някои формати го пропускат.

Hello

Hello

Base64

SGVsbG8=

Декодирайте SGVsbG8= и отново получавате Hello. Това отиване-връщане не иска ключ.

  • Изходни данни
  • Hello
  • Кодиране Base64
  • SGVsbG8=
  • Декодиране Base64
  • Hello
Base64 е обратимо чрез декодиране. Който има текста, обикновено може.

Base64 срещу шифроване: каква е разликата?

Base64 е за представяне и съвместимост. Не крие съдържанието. Шифроването е за поверителност и използва криптографски ключ. Декодирането на Base64 не е разшифроване. Системите с публичен ключ също ползват ключове; кажете «подходящ криптографски ключ», не «една споделена тайна за всеки вид шифроване». Хеширането е трета идея: обобщение, не обратимо кодиране.

  • Кодиране
  • Без таен ключ
  • Обратимо от всеки
  • Шифроване
  • Криптографска защита
  • Трябва верният ключ за разшифроване
Кодирането променя представянето. Шифроването цели съдържанието да остане поверително.

Три различни задачи:

Метод Основна цел Нужна тайна
Base64 Кодиране на данни като текст Не
Шифроване Защита на поверителността Да / ключов материал
Хеширане Еднопосочно обобщение Без разшифроване

Сигурен ли е Base64?

Само по себе си Base64 не дава поверителност. Текстът може да изглежда непрозрачен, но това не е функция за сигурност. Обикновен декодер връща байтовете. Това не значи, че «Base64 е несигурен» като технология. Това е обикновено кодиране. Не е механизъм за сигурност. Сигурността зависи от околната система и контролите.

Мога ли да скрия парола или ключ API с Base64?

Не, не като защита. Кодирането на парола, ключ API, токен за достъп или лични данни като Base64 не ги пази. Който получи кодирания низ, обикновено може да го декодира. Използвайте истинско съхранение на тайни и шифроване, когато поверителността има значение.

Защо се ползва Base64, ако не е шифроване?

Системи, които очакват текст, често не могат да носят сурови двоични данни. Base64 се ползва да представя двоично в текстови формати, да вгражда малки двоични ресурси, да пренася байтове през само текстови канали, да строи Data URL, да се появява в някои контексти на поща/MIME и да пълни полезен товар на API, когато схемата иска Base64. API не го ползват «за сигурност». Ползват го за съвместимост.

Защо Base64 прави данните по-големи?

Стандартният Base64 с допълване съпоставя 3 входни байта на 4 знака. Дължината е 4 × ceil(n / 3), където n е броят входни байтове. Три байта стават 4 знака; шест стават 8. Това е грубо с 33% по-голямо—около една трета—за голям суров товар. Малки входове могат да изглеждат различно заради допълването: един байт става QQ== (4 знака). Кавички JSON, префикс Data URL, компресия или допълнително транспортно кодиране могат още да променят съхранения или изпратен размер. Base64 не компресира данни.

Какво е Base64URL?

Base64URL е вариант на същото кодиране, безопасен за URL и имена на файлове—не шифроване. + става -, / става _, а допълването често се пропуска. Кодиране Base64 може да кодира и декодира стандартен Base64 и Base64URL. Правилата за допълване зависят от спецификацията. Този инструмент не е декодер JWT.

Може ли Base64 да кодира изображения и файлове?

Да. Изображения, PDF и други двоични файлове могат да станат текстово представяне Base64. Base64 не компресира тези файлове. Кодираният текст обикновено е по-голям от суровите байтове.

Какво е Data URL с Base64?

Data URL може да събере тип носител, маркер за кодиране и кодирани байтове в един низ:

data:image/png;base64,...

Удобно е за малки ресурси. Да сложите голям файл в Data URL не винаги е добра идея: низът расте и страниците могат да забавят. Гледайте го като компромис, не като подразбирано.

Кодиране срещу шифроване срещу хеширане

Кодирането (включително Base64) е за представяне и е обратимо без тайна. Шифроването е за поверителност и включва криптографски ключ. Хеширането дава обобщение, обикновено замислено като еднопосочно. Дължината на изхода зависи от алгоритъма—SHA-256 и SHA-512 не са с еднакъв размер. Генериране на хеш SHA може да покаже тези обобщения; не шифрова и не замества Base64.

Чести грешки с Base64

Да се приема Base64 за шифроване
Само променя как байтовете изглеждат като текст.

Да се пазят тайни като обикновен Base64
Кодираната стойност може да декодира всеки, който я има.

Да се предполага, че Base64 компресира данни
Не компресира. Текстовата форма обикновено е по-голяма.

Да се забравя увеличението на размера
Планирайте грубо една трета повече при големи сурови товари.

Да се бърка Base64 с Base64URL
Азбуките се различават. Декодерът може да отхвърли грешния вариант.

Декодиране с грешно кодиране на знаци
Base64 връща байтове. Текстът все още трябва съответното кодиране, обикновено UTF-8.

Да се предполага, че = винаги се появява
Допълването се ползва, когато трябва. Някои низове го нямат.

Защо текст Unicode може да създаде проблеми с Base64?

Base64 работи върху байтове, не върху знаци. Текстът трябва първо да стане байтове—обикновено UTF-8. Корейски, японски, арабски и емоджи се нуждаят от тази стъпка. Браузърното btoa() върху низ Unicode може да се провали. Кодиране Base64 кодира байтове UTF-8, така че този текст минава напред-назад. Ако декодирате с грешен набор знаци, Base64 може да е валиден, а буквите пак да изглеждат грешни.

Не е катинар

Base64 не дава поверителност. Който има кодираната стойност, обикновено може да я декодира. Не приемайте разбъркан на вид текст за защитена тайна.

Кодирайте или декодирайте Base64 в браузъра

NEXNARA Кодиране Base64 преобразува текст UTF-8 и файлове локално.

Можете да кодирате или декодирате стандартен Base64 и Base64URL, да направите файл суров Base64 или Data URL и да върнете Base64 или Data URL към изтегляне. Невалиден вход се отхвърля вместо да срине. Интервалите се игнорират; липсващото допълване се попълва.

Файлове над 10 MB могат да забавят раздела. Файлове над 32 MB не се обработват в браузъра.

Самата обработка на Base64 става във вашия браузър. Текстът или файлът не се изпращат към сървър на NEXNARA за този инструмент. Рекламите и други функции на сайта все още ползват мрежата; това е отделно от обработката.

Трябва да кодирате или декодирате Base64? Отворете Кодиране Base64 и поставете текста или пуснете файл.

FAQ

Base64 шифроване ли е?

Не. Base64 е кодиране. Променя представянето. Не пази поверителността.

Сигурен ли е Base64?

Base64 не е механизъм за сигурност. Това е обикновено кодиране. Който има текста, обикновено може да го декодира. Сигурността зависи от останалата система.

Може ли Base64 да се декодира без парола?

Да. Стига стандартен декодер. Самото Base64 не иска парола или таен ключ.

Защо Base64 увеличава размера на файла?

Всеки 3 байта стават 4 знака в стандартен Base64 с допълване (дължина 4 × ceil(n / 3)). Това е грубо с 33% повече за голям суров товар. Допълването може да промени съотношението при съвсем малки входове.

Каква е разликата между Base64 и Base64URL?

Base64URL ползва - и _ вместо + и / и често пропуска допълването =. И двете са кодирания. Кодиране Base64 поддържа и двете азбуки.

Може ли Base64 да кодира изображения и файлове?

Да. Резултатът е текст, не по-малък файл. Използвайте файлов режим в Кодиране Base64 за суров Base64 или Data URL. Файлът остава в браузъра.

Tech Help

Защо Base64 прави файловете по-големи?

Base64 обикновено увеличава двоичните данни с около една трета. Вижте структурата 3 байта към 4 знака, допълването, надценката на Data URL и кога допълнителният размер си струва.

Tech Help

JPG vs PNG за екранни снимки: кое е по-малко?

Избери JPG или PNG за екранна снимка според съдържанието: UI и текст често остават по-остри като PNG; кадри с много снимки могат да са по-малки като JPEG.

Tech Help

Защо JSON.parse казва "Unexpected token"?

JSON.parse хвърля Unexpected token, когато текстът не е валиден JSON. Открийте единични кавички, крайна запетая, HTML отговори и позицията на грешката.

Tech Help

Как да намалиш размера на файл с изображение, без да стане размазано

Намали размера на снимки и изображения при приемливо визуално качество. Първо промени прекалено големите размери, после компресирай умерено и избери подходящ формат.

Tech Help

Unix Timestamp към дата: секунди, милисекунди и UTC обяснени

Преобразувайте Unix timestamp в дата. Вижте секунди срещу милисекунди, UTC срещу местно време, ISO 8601 и как да се върнете от дата към epoch време.