← Barcha vositalar

Base64 Kodlash va Dekodlash

Base64 ni brauzeringizda bir zumda kodlang va dekodlang. Base64 nima ekani, nega hajmni 33% oshirishi va nega bu kodlash, shifrlash emasligini bilib oling.

Base64 nima va u nima uchun mavjud

Base64 — bu ikkilik ma'lumotni matnga aylantiruvchi kodlash usuli. U xom baytlarni — rasm, arxiv, kriptografik kalit yoki oddiy o'qiladigan matn bo'lmagan boshqa har qanday ma'lumotni tashkil etuvchi baytlarni — 64 ta bosma belgidan iborat kichik va xavfsiz alifbo yordamida qayta yozadi: 26 ta bosh lotin harfi A-Z, 26 ta kichik lotin harfi a-z, o'nta raqam 0-9 va ikkita qo'shimcha belgi, odatda + va /. Oxirida to'ldirish uchun tenglik belgisi ishlatiladi. U hosil qiladigan har bir belgi oddiy ASCII bo'lgani uchun, natija faqat matnni qayta ishlash uchun mo'ljallangan tizimlardan ham muammosiz o'tadi.

Base64 aynan shu sabab bilan yaratilgan. Ko'plab eski protokollar — elektron pochta buning klassik namunasi — o'zlari tashiydigan tarkib matn deb hisoblaydi. Agar ularga xom ikkilik ma'lumotni bersangiz, ba'zi baytlar buziladi, olib tashlanadi yoki boshqaruv belgisi sifatida talqin qilinadi, va ma'lumot buzilgan holda yetib boradi. Base64 bu muammoni baytlarni har qanday matn uchun xavfsiz kanaldan o'zgarmasdan o'tadigan shaklga aylantirish orqali chetlab o'tadi. Asl ma'lumot esa boshqa tomonda aynan qayta tiklanishi mumkin.

To'q indigo fonda ikkilik ma'lumotning porlab turgan oqimi matn belgilar oqimiga aylanmoqda, ko'k va tilla rangda
Base64 xom baytlarni xavfsiz, matnga mos belgilar oqimiga aylantiradi.

Aylantirish qanday ishlaydi

Mexanik jihatdan, Base64 kiritilgan ma'lumotni uchtadan baytli bo'laklarga — bu 24 bit degani — bo'ladi va shu 24 bitni har biri olti bitdan iborat to'rtta guruhga qayta bo'ladi. Olti bit 64 xil qiymatni ifodalay oladi, aynan shuning uchun alifboda 64 ta belgi bor. Shunday qilib, uchta kirish bayti har doim to'rtta chiqish belgisiga aylanadi. Kirish uzunligi uchga karrali bo'lmasa, kodlovchi oxirgi guruhni bir yoki ikkita = belgisi bilan to'ldiradi, shunda dekodlovchi asl ma'lumot qayerda tugashini biladi.

Aynan shu to'rtga-uch nisbati mashhur hajm penaltisining manbaidir: Base64 chiqishi asl ma'lumotdan taxminan 33% kattaroq bo'ladi. Agar kodlangan matn elektron pochta standartlari ko'pincha talab qilganidek qat'iy kenglikdagi qatorlarga o'ralsa, qator ko'chirishlar uchun buning ustiga yana bir necha foiz qo'shiladi. Bu ortiqcha yuk — moslashuvchanlik uchun to'lanadigan narx, va ko'pchilik holatlar uchun bu adolatli almashuv.

Base64'ni qayerda uchratasiz

Nimani qidirishni bilgach, Base64 kundalik hisoblash olamida hamma joyda ko'zga tashlanadi:

  • Data URI'lar. Kichik rasm yoki shrift HTML yoki CSS ichiga to'g'ridan-to'g'ri data: URI orqali joylashtirilishi mumkin, fayl tarkibi esa Base64 sifatida yozib chiqiladi. Brauzer buni ichida dekodlaydi va alohida tarmoq so'rovidan qutuladi.
  • Elektron pochta ilovalari. Elektron pochtaga fayl tashishga imkon beruvchi MIME standarti ikkilik ilovalarni faqat matnli pochta tizimidan zararlanmagan holda o'tkazish uchun Base64'ga tayanadi.
  • HTTP Basic autentifikatsiya. Tanish Authorization: Basic ... sarlavhasi — bu shunchaki ikki nuqta bilan birlashtirilgan foydalanuvchi nomi va parol, Base64'da kodlangan — aynan shu sababli Basic autentifikatsiya doim HTTPS orqali ishlashi shart.
  • Tokenlar va konfiguratsiya. JSON Web Token'lar, sertifikatlar, SSH kalitlari va son-sanoqsiz konfiguratsiya qiymatlari nusxalash-joylashtirish va matnga asoslangan saqlashda saqlanib qolishi uchun Base64 sifatida saqlanadi yoki uzatiladi.

Kodlash shifrlash emas

Bu tushunish kerak bo'lgan eng muhim narsa, va u boshlovchilarni ham, tajribali dasturchilarni ham chalg'itadi. Base64 shifrlash emas va u hech qanday xavfsizlik bermaydi. Unda hech qanday maxfiy kalit, parol yo'q va hech nima maxfiy emas. Bu o'zgartirish to'liq ochiq va to'liq qaytariladigan: Base64 satrini ko'rgan har kim uni bir soniyada asl baytlarga qaytarib dekodlashi mumkin, aynan shu kabi vosita yordamida.

Shuning uchun Base64 parollar, API kalitlari yoki har qanday maxfiy qiymatlarni yashirish uchun yomon joydir. Agar satr shunchaki aralashtirilgandek ko'rinsa, bu uni himoyalangan qilmaydi. Shifrlash esa, aksincha, ma'lumotni maxfiy kalit bilan o'zgartiradi, shunda faqat o'sha kalitga ega bo'lgan kishi uni o'qiy oladi. Ular ikki xil muammoni hal qiladi: shifrlash maxfiylikni himoya qiladi, Base64 esa moslashuvchanlikni ta'minlaydi. Ular ko'pincha birgalikda ishlatiladi — masalan, ma'lumotni AES bilan shifrlashingiz, so'ng shifrmatnni matnli kanal orqali o'tishi uchun Base64'da kodlashingiz mumkin — lekin biri hech qachon ikkinchisining o'rnini bosa olmaydi.

Abstrakt tasvir porlab turgan belgilar oqimiga aylanib eriyapti va qayta yig'ilyapti, indigo-lojuvard fonda ko'k va tilla rangda
Kodlash va dekodlash mukammal qaytariladigan amallar — va ular hech qanday maxfiylik bermaydi.

Kodlash va dekodlash

Ikki yo'nalish oddiy oyna aksidir. Kodlash asl matn yoki ikkilik ma'lumotni oladi va Base64 belgilar satrini hosil qiladi. Dekodlash esa Base64 satrini oladi va aynan asl baytlarni qayta tiklaydi. Bizning vositamiz ikkalasini ham to'g'ridan-to'g'ri brauzeringizda bajaradi — siz kiritgan yoki joylashtirgan hech narsa serverga yuborilmaydi, shuning uchun amal to'liq lokal va maxfiy bo'lib qoladi. Bu tuzatayotgan tokeningizni dekodlash yoki joylashtirmoqchi bo'lgan qismni kodlashni ma'lumotingiz sahifadan chiqib ketmasdan xavfsiz qiladi.

Bog'liq aylantirishlar uchun protsent-kodlash bo'yicha URL kodlash/dekodlash vositamizga, yoki token ichidagi Base64 segmentlarini tekshirish kerak bo'lganda JWT dekoderiga qarang. Ularni boshqa dasturchi vositalarimiz qatorida topasiz.

Tez-tez so'raladigan savollar

Base64 shifrlash turimi?

Yo'q. Base64 — kodlash, shifrlash emas. U hech qanday kalit ishlatmaydi va har kim tomonidan to'liq qaytarilishi mumkin, shuning uchun u hech qanday xavfsizlik bermaydi. Maxfiy ma'lumotni himoya qilish uchun AES yoki RSA kabi haqiqiy shifrlashdan foydalaning.

Nega Base64 ma'lumotni kattalashtiradi?

Base64 har uchta kirish baytini to'rtta chiqish belgisiga aylantiradi, bu hajmga taxminan 33% qo'shadi. Agar chiqish qat'iy uzunlikdagi qatorlarga bo'linsa, qator ko'chirishlar yana bir necha foizni qo'shadi.

Base64 qanday belgilardan foydalanadi?

Standart alifbo — 26 ta bosh harf, 26 ta kichik harf, 0 dan 9 gacha raqamlar, plyus va kesim belgilari, va oxirida to'ldirish uchun ishlatiladigan tenglik belgisi.

Parollarni Base64'da xavfsiz saqlasam bo'ladimi?

Yo'q. Base64 faqat ma'lumotning ko'rinishini o'zgartiradi, kim uni o'qiy olishini emas. Har kim uni zumda dekodlashi mumkin. Parollar kuchli algoritm bilan xeshlanishi, sirlar esa shifrlanishi kerak.

Ushbu Base64 vositasi maxfiymi?

Ha. Kodlash va dekodlash to'liq brauzeringizda amalga oshiriladi. Siz kiritgan hech narsa yuklanmaydi yoki hech qanday serverga yuborilmaydi, shuning uchun ma'lumotingiz o'z qurilmangizda qoladi.

Kodlash va dekodlash o'rtasidagi farq nima?

Kodlash asl matn yoki ikkilik ma'lumotni Base64 satriga aylantiradi. Dekodlash esa buni teskari qiladi, Base64 satrini aynan asl baytlarga qaytaradi. Ular bir-birining oyna aksidir.