بیس۶۴

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

بیس۶۴ (به انگلیسی: Base64) عنوان یک کدبندی دودویی به متن است. در این کدبندی، آرایه‌ای از بایت‌ها به صورت نویسه‌های اَسکی کدگذاری می‌شوند. کاربرد آن در تبادل اطلاعات از طریق محیط‌هایی که تنها از کدهای اسکی ۷-بیتی پشتیبانی می‌کنند (مانند ایمیل) است. توصیف کامل این کدبندی در RFC 1252 آمده است.[۱]

کدبندی[ویرایش]

جدول تبدیل بیس۶۴[۲]
مقدار کدبندی   مقدار کدبندی   مقدار کدبندی   مقدار کدبندی
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /

بیس۶۴ را می‌توان یک دستگاه اعداد، مشابه دستگاه اعداد هشت‌هشتی و دستگاه اعداد شانزده‌شانزدهی، اما در مبنای ۶۴ دانست. در حالی که یک سامانهٔ هشت‌هشتی از ۳ بیت، و یک سامانهٔ شانزده‌شانزدهی از ۴ بیت برای ذخیره‌سازی هر رقم استفاده می‌کنند، در مبنای ۶۴ هر رقم در ۶ بیت ذخیره می‌شود.[۳] در عمل بیس۶۴ داده‌های دودویی ۸ بیتی را به قالب ۷ بیتی تبدیل می‌کند؛ به طور معمول ۳ بایتِ ۸ بیتی، تبدیل به ۴ بایت ۷ بیتی می‌شوند که ۳۳٪ از داده‌های اولیه حجیم‌تر است. برای نمایش اطلاعات، تنها از نویسه‌های A-Z، a-z، 0-9، / و = (برای پدگذاری) استفاده می‌شود.[۴] (هر یک از نتایج ۶ یا ۷ بیتی حاصل بر یکی از نویسه‌های اسکلی منطبق خواهد شد[۵])

اگر در پایان متن، کمتر ۲۴ بیت (۳ بایت) برای کدبندی باقی‌مانده باشد، برای ممکن‌شدن کدبندی، به سمت راست بایت‌ها، بیت‌های 0 می‌افزایند، این موضوع با استفاده از نویسهٔ «=» مشخص می‌شود. به عبارت دیگر اگر آخرین گروه داده، تنها دارای ۲ بایت باشد، ۱۲ بیت نخست آن به طور معمول (از روی جدول) کدگذاری می‌شوند و ۴ بیت باقی‌مانده با استفاده از دو بیت 0 کامل می‌گردند تا تبدیل به دادهٔ ۶ بیتی شود، سپس نتیجه را به مبنای ۶۴ می‌برند. برای مشخص‌شدن این موضوع یک علامت «=» به پایان رشتهٔ حاصل افزوده خواهد شد. به طور مشابه اگر در پایان متن تنها ۱ بایت (۸ بیت) باقی‌مانده باشد، ۶ بیت نخست به طور معمول کدبندی می‌شوند، دو بیت پایانی با استفاده از چهار 0 تکمیل می‌گردند، و رشتهٔ حاصل با استفاده از دو علامت «=» نشانه‌گذاری خواهد شد.[۶]

کدگشایی[ویرایش]

در زمان کدگشایی عکس کارهایی که در زمان کدگذاری انجام شده صورت می‌گیرد. اگر کدگشا به نویسه‌ای بر بخورد که در جدول نویسه‌های بیس۶۴ نباشد، از آن چشم‌پوشی می‌کند.[۷] این نویسه‌ها ممکن است نویسه‌های ناموجود در جدول مانند سرخط و یا نشانگر خطا در زمان انتقال باشند.[۸]

جستارهای وابسته[ویرایش]

منابع[ویرایش]