Base64 Kodlash

Base64 kodlash vositasi yordamida siz kiritgan matnni Base64 usuli bilan shifrlashingiz mumkin. Agar xohlasangiz, shifrlangan Base64 kodini Base64 Decode vositasi bilan dekodlashingiz mumkin.

Base64 kodlash nima?

Base64 Encoding - bu ikkilik ma'lumotlarni faqat ba'zi cheklangan belgilar kodlashlaridan foydalanadigan muhitlarda (xml, html, skript, lahzali xabar almashish ilovalari kabi barcha belgilar kodlaridan foydalanish mumkin bo'lmagan muhitlar) tashish imkonini beruvchi kodlash sxemasi. Ushbu sxemadagi belgilar soni 64 ta, Base64 so'zidagi 64 soni esa shu yerdan kelib chiqqan.

Nima uchun Base64 kodlashdan foydalanish kerak?

Base64 kodlash zarurati media ikkilik formatda matnga asoslangan tizimlarga uzatilganda yuzaga keladigan muammolardan kelib chiqadi. Matnga asoslangan tizimlar (masalan, elektron pochta) ikkilik ma'lumotlarni keng doiradagi belgilar, jumladan, maxsus buyruq belgilari sifatida talqin qilganligi sababli, uzatish tashuvchisiga uzatiladigan ikkilik ma'lumotlarning aksariyati ushbu tizimlar tomonidan noto'g'ri talqin qilinadi va uzatishda yo'qoladi yoki buziladi. jarayon.

Bunday ikkilik ma'lumotlarni uzatish muammolarini oldini olish uchun kodlash usullaridan biri ularni oddiy ASCII matni sifatida Base64 kodlangan formatda yuborishdir. Bu oddiy matndan boshqa ma'lumotlarni yuborish uchun MIME standarti tomonidan qo'llaniladigan usullardan biridir. PHP va Javascript kabi koʻplab dasturlash tillari Base64 kodlash yordamida uzatiladigan maʼlumotlarni sharhlash uchun Base64 kodlash va dekodlash funksiyalarini oʻz ichiga oladi.

Base64 kodlash mantig'i

Base64 kodlashda 3 * 8 bit = 3 baytdan iborat 24 bit ma'lumotlar 6 bitli 4 guruhga bo'linadi. Ushbu 4 ta 6-bitli guruhning [0-64] orasidagi kasr qiymatlariga mos keladigan belgilar kodlash uchun Base64 jadvalidan mos keladi. Base64 kodlash natijasida olingan belgilar soni 4 ga karrali bo'lishi kerak. 4 ga karrali boʻlmagan kodlangan maʼlumotlar haqiqiy Base64 maʼlumotlari emas. Base64 algoritmi bilan kodlashda, kodlash tugallanganda, agar ma'lumotlar uzunligi 4 ga karrali bo'lmasa, kodlash oxiriga "=" (teng) belgisi 4 ga karraligacha qo'shiladi. Misol uchun, agar biz kodlash natijasida 10 ta belgidan iborat Base64 kodlangan ma'lumotlarga ega bo'lsak, oxiriga ikkita "==" qo'shilishi kerak.

Base64 kodlash misoli

Misol uchun, uchta ASCII raqamlarini oling 155, 162 va 233. Bu uchta raqam 100110111010001011101001 ikkilik oqimini tashkil qiladi. Rasm kabi ikkilik fayl o'nlab yoki yuz minglab nollar va birlar uchun ishlaydigan ikkilik oqimni o'z ichiga oladi. Base64 kodlovchisi ikkilik oqimni oltita belgidan iborat guruhlarga bo'lishdan boshlanadi: 100110 111010 001011 101001. Ushbu guruhlarning har biri 38, 58, 11 va 41 raqamlariga tarjima qilingan. Olti belgili ikkilik oqim ikkilik (yoki asosiy) o'rtasida o'zgartiriladi. 2) ikkilik massivda 1 bilan ifodalangan har bir qiymatni pozitsion kvadratga kvadratlash orqali o'nlik (asos-10) belgilarga. O'ngdan chapga va noldan boshlab, ikkilik oqimdagi qiymatlar 2^0, keyin 2^1, keyin 2^2, keyin 2^3, keyin 2^4, keyin 2^ ni ifodalaydi. 5.

Buni ko'rishning yana bir usuli. Chapdan boshlab, har bir pozitsiya 1, 2, 4, 8, 16 va 32 ga teng. Agar uyada ikkilik raqam 1 bo'lsa, siz ushbu qiymatni qo'shasiz; agar uyada 0 bo'lsa, siz etishmayapsiz. Ikkilik massiv 100110 38 ga aylanadi: 0 * 2 ^ 01 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 = 0 + 2 kasr + 4 + 0 + 0 + 32. Base64 kodlash bu ikkilik qatorni oladi va uni 6-bitli 38, 58, 11 va 41 qiymatlariga ajratadi. Nihoyat, bu raqamlar Base64 kodlash jadvali yordamida ASCII belgilarga aylantiriladi.