از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Base64 رمزگذاری و رمزگشایی از خط فرمان
سرفصلهای مطلب
رمزگذاری است process برای تبدیل داده ها در قالب مورد نیاز برای انتقال یا ذخیره سازی موثر استفاده می شود. در مقابل، رمزگشایی برخلاف روش رمزگذاری است که داده های کدگذاری شده را به فرمت اصلی خود تبدیل می کند. Base64 رمزگذاری است process که در آن داده های باینری به ASCII تبدیل می شوند. رمزگذاری Base64 بیشتر برای جلوگیری از مشکلات انتقالی که هنگام انتقال دادههای باینری به سیستمهای مبتنی بر متن که نمیتوانند دادههای باینری را به درستی مدیریت کنند، رخ میدهد، مورد نیاز است. در نتیجه، اطلاعات در حین انتقال از بین می روند یا خراب می شوند.
برخی از کاربردهای رمزگذاری عبارتند از:
- متراکم سازی داده ها
- پنهان کردن داده ها
- انتقال داده ها در قالب دیگری
برای رمزگذاری داده ها، Base64 فقط از حروف الفبا، عدد و نماد = استفاده می کند. برای مثال، c2FtcGxlCg== یک داده رمزگذاری شده معتبر در حالی است b؟HV3.Zh2J== یک داده رمزگذاری شده معتبر نیست.
در این آموزش راهنمای لینوکس، روش استفاده از دستور base64 برای رمزگذاری و رمزگشایی داده ها در یک رشته یا یک فایل را توضیح خواهیم داد. ما دستورات را انجام داده ایم روی سیستم فوسا فوسا اوبونتو 20.04. با این حال، شما همچنین می توانید همان دستورات را اجرا کنید روی سایر توزیع های لینوکس
نحو Base64
در اینجا سینتکس برای رمزگذاری با استفاده از Base64 آمده است:
گزینه ها
برخی از command-line گزینه هایی که می توان با دستور base64 استفاده کرد عبارتند از:
از این گزینه برای رمزگشایی یک فایل یا یک رشته استفاده کنید.
از این گزینه برای نمایش راهنمایی در مورد استفاده از base64 استفاده کنید.
از این گزینه هنگام رمزگشایی برای نادیده گرفتن کاراکترهای غیر الفبا استفاده کنید
از این گزینه برای نمایش اطلاعات نسخه استفاده کنید
رشته رمزگذاری
شما به راحتی می توانید یک رشته را با استفاده از دستور base64 رمزگذاری کنید. به عنوان مثال، برای رمزگذاری یک متن نمونه “Welcome to Linux” در base64، دستور به صورت زیر خواهد بود:
linuxhit@hp34:~$ اکو “به لینوکس خوش آمدید” | پایه 64
V2VsY29tZSB0byBMaW51eAo=
این دستور متن را در رشته با استفاده از base64 رمزگذاری می کند و متن کدگذاری شده را در خروجی استاندارد همانطور که در خروجی ترمینال بالا نشان داده شده است چاپ می کند.
همچنین می توانید خروجی کدگذاری شده را به جای چاپ در خروجی استاندارد با استفاده از عملگر تغییر مسیر (>) در یک فایل ذخیره کنید. دستور زیر متن را رمزگذاری می کند و خروجی را در فایلی با نام “encodedfile.txt” ذخیره می کند:
برای مشاهده فایل کدگذاری شده می توانید از دستور cat استفاده کنید:
linuxhit@hp34:~$ گربه encodedfile.txt
4oCcV2VsY29tZSB0byBMaW51eOKAnQo=
رشته رمزگشایی
همچنین می توانید متن کدگذاری شده base64 را با استفاده از گزینه –decode یا -d رمزگشایی کنید. به عنوان مثال برای رمزگشایی متن رمزگذاری شده base64 “V2VsY29tZSB0byBMaW51eAo=”، دستور به صورت زیر خواهد بود:
این دستور متن کدگذاری شده base64 را رمزگشایی کرده و متن اصلی را چاپ می کند روی خروجی استاندارد همانطور که در خروجی ترمینال زیر نشان داده شده است.
linuxhit@hp34:~$ اکو 4oCcV2VsY29tZSB0byBMaW51eOKAnQo= | پایه 64 — رمزگشایی
“به لینوکس خوش آمدید”
رمزگذاری فایل متنی
دستور base64 همچنین می تواند برای رمزگذاری یک فایل متنی استفاده شود. برای این مثال اجازه می دهد ابتدا با استفاده از این دستور یک فایل متنی با مقداری محتوا ایجاد کنید روی را terminal، یا از هر فایل متنی استفاده کنید.
من عاشق لینوکس هستم
من عاشق لینوکس هستم
LinuxHint من است homepage”“” > testfile.txt
برای رمزگذاری این یا هر فایل متنی با نام testfile.txt، دستور به صورت زیر خواهد بود:
این دستور فایل متنی مشخص شده را رمزگذاری می کند و فرم کدگذاری شده آن را چاپ می کند روی خروجی استاندارد همانطور که در خروجی ترمینال زیر نشان داده شده است:
SSBMb3ZlIExpbnV4CkkgTG92ZSBMaW51eApJIExvdmUgTGludXgKTGludXhIaW50IGlzIG15IGhv
bWVwYWdlCg==
همچنین می توانید خروجی کدگذاری شده را به جای چاپ در خروجی استاندارد با استفاده از عملگر تغییر مسیر (>) در یک فایل ذخیره کنید. دستور زیر متن فایل را با استفاده از base64 تبدیل می کند و خروجی را در فایل دیگری به نام “encodedfile.txt” ذخیره می کند. این دستور چیزی را روی صفحه چاپ نمی کند.
برای مشاهده فایل کدگذاری شده می توانید از دستور cat استفاده کنید:
linuxhit@hp34:~$ base64 testfile.txt > encodedfile.txt
linuxhit@hp34:~$ گربه encodedfile.txt
SSBMb3ZlIExpbnV4CkkgTG92ZSBMaW51eApJIExvdmUgTGludXgKTGludXhIaW50IGlzIG15IGhv
bWVwYWdlCg==
رمزگشایی فایل متنی
برای رمزگشایی یک فایل متنی کدگذاری شده، از گزینه –decode یا -d استفاده کنید. به عنوان مثال برای رمزگشایی فایل متنی رمزگذاری شده base64 “encodedfile.txt”، دستور به صورت زیر خواهد بود:
این دستور فایل متنی کدگذاری شده base64 را رمزگشایی کرده و متن اصلی را چاپ می کند روی خروجی استاندارد همانطور که در خروجی ترمینال زیر نشان داده شده است:
linuxhit@hp34:~$ پایه 64 -د encodedfile.txt
من عاشق لینوکس هستم
من عاشق لینوکس هستم
من عاشق لینوکس هستم
LinuxHint من است homepage
linuxhit@hp34:~$
رمزگذاری ورودی کاربر
با استفاده از کدگذاری base64، میتوانیم هر دادهای را که کاربر ارائه میکند، رمزگذاری کنیم. برای این منظور، ما نیاز به ایجاد یک اسکریپت داریم که ورودی کاربر را می گیرد، آن را با استفاده از کدگذاری base64 رمزگذاری می کند و داده های رمزگذاری شده را چاپ می کند. روی خروجی استاندارد یک اسکریپت “test.sh” با کد زیر ایجاد کنید:
# برای درخواست ورودی پیام را چاپ کنید
اکو “ارائه برخی از داده ها برای رمزگذاری”
# ورودی را در متغیری به نام “داده” ذخیره کنید
خواندن داده ها
# با استفاده از رمزگذاری base64 رمزگذاری کنید و خروجی را در متغیر “encod_data” ذخیره کنید.
کد_داده=`اکو -n $داده | پایه 64`
# خروجی کدگذاری شده را چاپ کنید
اکو “متن رمزگذاری شده عبارت است از: $encod_data“
اسکریپت را به صورت زیر اجرا کنید:
پس از اجرای اسکریپت، از شما خواسته می شود که داده هایی را که می خواهید رمزگذاری کنید، وارد کنید. مقداری داده را تایپ کرده و Enter را فشار دهید، خروجی کدگذاری شده را دریافت خواهید کرد روی صفحه نمایش مطابق شکل زیر:
linuxhit@hp34:~$ chmod 755 test.sh; ./test.sh
برخی از داده ها را برای رمزگذاری ارائه دهید
من عاشق لینوکس هستم
متن رمزگذاری شده: SSBsb3ZlIGxpbnV4 است
این متن رمزگذاری شده را می توان از طریق اینترنت یا برنامه دیگری ارسال کرد و سپس با استفاده از یک دستور ساده رمزگشایی کرد. برای این دستور فرض می کنیم که برنامه دریافت کننده، decode.sh، داده های کدگذاری شده را در متغیری در BASH به نام قرار داده است. RECEIVED_ENCODING.
RECEIVED_ENCODING=SSBsb3ZlIGxpbnV4
RECEIVED_STRING=`اکو $RECEIVED_ENCODING | base64 –decode`
اکو $RECEIVED_STRING
در اینجا می توانید نتایج برنامه دریافت را در خروجی ترمینال مشاهده کنید:
من عاشق لینوکس هستم
نتیجه
به این ترتیب می توانید از base64 برای رمزگذاری و رمزگشایی یک رشته یا یک فایل از خط فرمان استفاده کنید. نتایج را می توان چاپ کرد روی خروجی استاندارد، ذخیره شده در یک متغیر یا فایل، یا از طریق شبکه به برنامه دیگری منتقل می شود. با این حال، به یاد داشته باشید که رمزگذاری شبیه رمزگذاری نیست و می توان به راحتی داده های رمزگذاری شده را آشکار کرد، بنابراین استفاده از رمزگذاری برای انتقال داده های حساس توصیه نمی شود مگر اینکه رمزگذاری شده باشد.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 16:11:03