Бұл құрал не істейді?
Base64 — екілік немесе мәтіндік деректерді 64 қауіпсіз ASCII таңбасының жиынына (A–Z, a–z, 0–9, + және /) түрлендіретін кодтау схемасы. Ол бағдарламалық жасақтамада барлық жерде қолданылады: суреттерді HTML/CSS ішіне ендіру, HTTP Basic аутентификация тақырыптары, электрондық пошта тіркемелері (MIME), JSON Web Tokens, және тек мәтіндік арналар арқылы өтуге тиіс API деректері.
Маңызды: Base64 — кодтау, шифрлау емес. Оны кез келген адам декодтай алады. Оның мақсаты — деректерді тек мәтінді түсінетін жүйелер арқылы тасымалдау үшін қауіпсіз ету, оларды құпия сақтау емес.
Base64 RFC 4648 стандартында ресми түрде анықталған, ол сондай-ақ JWT-де және веб API-лерде қолданылатын URL үшін қауіпсіз нұсқаны да белгілейді: онда + таңбасы --ге, ал / таңбасы _-ге ауыстырылады, осылайша кодталған жол пайызбен кодтаусыз URL ішінде өте алады.
Оны неге пайдалану керек?
- API токендерін, JWT сегменттерін және аутентификация тақырыптарын ішінде не бар екенін көру үшін декодтаңыз.
- Data URI, конфигурация файлдары немесе HTTP тақырыптары үшін мәтінді кодтаңыз.
- UTF-8 үшін қауіпсіз: эмодзилер мен латын емес таңбалар дұрыс кодталады және декодталады.
- 100% жекелік — түрлендіру браузеріңізде орындалады, ешнәрсе жүктелмейді.
- Тегін, тіркелудің қажеті жоқ, өлшем шектеулері жоқ.
Оны қалай пайдалану керек
- Мазмұныңызды енгізу өрісіне теріңіз немесе қойыңыз.
- Мәтінді Base64-ке түрлендіру үшін "Кодтау" түймесін, немесе Base64-ті кері мәтінге түрлендіру үшін "Декодтау" түймесін басыңыз.
- Декодтау сәтсіз аяқталса, енгізілген мәлімет жарамды Base64 емес — жетіспейтін таңбаларды немесе артық бос орындарды тексеріңіз.
- Нәтижені көшіру үшін "Көшіру" түймесін басыңыз.
Мысал
Енгізу
Hello, CodeKitHub! 你好 👋Нәтиже
SGVsbG8sIENvZGVLaXRIdWIhIOS9oOWlvSDwn5GLҚытай таңбалары мен эмодзидің бару-келу түрлендіруінен аман қалғанына назар аударыңыз — бұл UTF-8 үшін қауіпсіз бөлігі.
Тәжірибелік кеңестер
- JWT токендері нүктелермен қосылған үш Base64 сегментінен тұрады — оларды оқу үшін алғашқы екеуін (тақырып пен пайдалы жүктеме) бөлек декодтаңыз; үшіншісі — екілік қолтаңба, ол шу сияқты көрінеді.
- JWT сегментін декодтау сәтсіз аяқталса, бұл base64url кодтауы: алдымен - таңбасын +-ке, ал _ таңбасын /-ге ауыстырыңыз (стандартты құралдар +/ әліпбиін күтеді).
- Base64 жолының ішіндегі бос орындар мен жол үзілімдері әдетте электрондық пошта немесе журналдардан қалған зиянсыз қалдықтар, бірақ соңғы = толтыруының жоқтығы жиі олай емес — деректер бүлінген деп есептемес бұрын ұзындықты тексеріңіз.
- Base64 деректерді шамамен 33%-ға ұлғайтады. Кіші пайдалы жүктемелер үшін жақсы; бірнеше КБ-тан асатын суреттер үшін нақты файл дерлік әрдайым data URI-ден жақсырақ таңдау болады.
Нақты пайдалану сценарийлері
Адамдарды осы жерге күнделікті әкелетін үш жағдай: Authorization тақырыбының немесе JWT-нің ішінде не бар екенін оқу, Base64 форматында келген webhook/API пайдалы жүктеме өрісін декодтау (көбіне JSON — оны декодтаудан кейін пішімдеңіз), және жөндеу кезінде data URI немесе Basic-Auth жолын қолмен жасау.
Екілік деректер (суреттер, файлдар) үшін мәтін ретінде декодтағанда алатыныңыз түсініксіз таңбалар (mojibake) екенін есте сақтаңыз — деректер толығымен жарамды болуы мүмкін, олар жай ғана мәтін емес. Екілік деректерді кодтау/декодтау коды бар жерде болуы керек; бұл құрал мәтіндік жағдайлар үшін оңтайландырылған.
Декодтау қатесін қалай диагностикалау керек
Base64 декодтау қателері жиілігі бойынша реттелген үш себептің біреуіне дерлік әрдайым байланысты болады: енгізілген мәлімет шын мәнінде base64url болды (стандартты + және / орнына - және _ қолданады, бұл JWT-де және URL үшін қауіпсіз контексттерде жиі кездеседі) және стандартты декодтау оны қабылдамас бұрын осы таңбаларды кері ауыстыру қажет; жол жол бойында бір жерде қиылды (соңғы бірнеше таңбаны жіберіп алған көшіру-қою немесе кесілген журнал жолы), мұны анықтауға болады, себебі жарамды Base64 жолының ұзындығы толтыруды ескергенде әрдайым 4-ке еселі болады; немесе бөгде таңбалар (артық бос орын, кездейсоқ жаңа жол, кездейсоқ қайталанған таңба) көшіру кезінде енгізілді, сондықтан қайта теру орнына бастапқы көзден тікелей қою әрдайым қауіпсізірек.
→
Жиі қойылатын сұрақтар
Base64 шифрлау ма?
Жоқ. Base64 — кез келген адам декодтай алатын қайтымды кодтау, ол ешқандай қауіпсіздік қамтамасыз етпейді. Деректерді қорғау қажет болса, нағыз шифрлауды (мысалы, AES) қолданыңыз; Base64 тек деректерді мәтін ретінде тасымалдауды қауіпсіз ету үшін ғана.
Неге менің декодталған нәтижем түсініксіз көрінеді?
Не енгізілген мәлімет шын мәнінде Base64 емес, не ол қиылған, не бастапқы деректер мәтін емес, екілік деректер (мысалы, сурет) болды. Екілік деректер оқылатын таңбалар ретінде көрсетілмейді.
Соңындағы = белгілері нені білдіреді?
Толтыру (padding). Base64 3 кіріс байтты 4 шығыс таңбасына түрлендіретін блоктармен жұмыс істейді. Кіріс ұзындығы 3-ке бөлінбесе, соңғы блокты бір немесе екі = таңбасы толықтырады.
Бұл құрал эмодзилермен және қытай таңбаларымен жұмыс істей ме?
Иә. Ол алдымен мәтінді UTF-8 байттары ретінде кодтайды, бұл — стандартты тәсіл. btoa() функциясын тікелей қолданатын қарапайым құралдар Latin-1 шегінен тыс кез келген таңбада сәтсіздікке ұшырайды — бұл құрал олай емес.
Менің деректерім қайда да болса жүктеле ме?
Жоқ. Кодтау мен декодтау толығымен браузеріңізде JavaScript арқылы орындалады. Деректеріңіз құрылғыңыздан ешқашан шықпайды.