وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

Base64 رمزگذاری و رمزگشایی از خط فرمان

0 36
زمان لازم برای مطالعه: 5 دقیقه


رمزگذاری است process برای تبدیل داده ها در قالب مورد نیاز برای انتقال یا ذخیره سازی موثر استفاده می شود. در مقابل، رمزگشایی برخلاف روش رمزگذاری است که داده های کدگذاری شده را به فرمت اصلی خود تبدیل می کند. Base64 رمزگذاری است process که در آن داده های باینری به ASCII تبدیل می شوند. رمزگذاری Base64 بیشتر برای جلوگیری از مشکلات انتقالی که هنگام انتقال داده‌های باینری به سیستم‌های مبتنی بر متن که نمی‌توانند داده‌های باینری را به درستی مدیریت کنند، رخ می‌دهد، مورد نیاز است. در نتیجه، اطلاعات در حین انتقال از بین می روند یا خراب می شوند.

برخی از کاربردهای رمزگذاری عبارتند از:

  • متراکم سازی داده ها
  • پنهان کردن داده ها
  • انتقال داده ها در قالب دیگری

برای رمزگذاری داده ها، Base64 فقط از حروف الفبا، عدد و نماد = استفاده می کند. برای مثال، c2FtcGxlCg== یک داده رمزگذاری شده معتبر در حالی است b؟HV3.Zh2J== یک داده رمزگذاری شده معتبر نیست.

در این آموزش راهنمای لینوکس، روش استفاده از دستور base64 برای رمزگذاری و رمزگشایی داده ها در یک رشته یا یک فایل را توضیح خواهیم داد. ما دستورات را انجام داده ایم روی سیستم فوسا فوسا اوبونتو 20.04. با این حال، شما همچنین می توانید همان دستورات را اجرا کنید روی سایر توزیع های لینوکس

نحو Base64

در اینجا سینتکس برای رمزگذاری با استفاده از Base64 آمده است:

پایه 64 [OPTION] [FILE]

گزینه ها

برخی از command-line گزینه هایی که می توان با دستور base64 استفاده کرد عبارتند از:

یا — رمزگشایی

از این گزینه برای رمزگشایی یک فایل یا یک رشته استفاده کنید.

–کمک

از این گزینه برای نمایش راهنمایی در مورد استفاده از base64 استفاده کنید.

-من، — نادیده گرفتن زباله

از این گزینه هنگام رمزگشایی برای نادیده گرفتن کاراکترهای غیر الفبا استفاده کنید

–نسخه

از این گزینه برای نمایش اطلاعات نسخه استفاده کنید

رشته رمزگذاری

شما به راحتی می توانید یک رشته را با استفاده از دستور base64 رمزگذاری کنید. به عنوان مثال، برای رمزگذاری یک متن نمونه “Welcome to Linux” در base64، دستور به صورت زیر خواهد بود:

اکو “به لینوکس خوش آمدید” | پایه 64
خروجی ترمینال:
linuxhit@hp34:~$ اکو “به لینوکس خوش آمدید” | پایه 64
V2VsY29tZSB0byBMaW51eAo=

این دستور متن را در رشته با استفاده از base64 رمزگذاری می کند و متن کدگذاری شده را در خروجی استاندارد همانطور که در خروجی ترمینال بالا نشان داده شده است چاپ می کند.

همچنین می توانید خروجی کدگذاری شده را به جای چاپ در خروجی استاندارد با استفاده از عملگر تغییر مسیر (>) در یک فایل ذخیره کنید. دستور زیر متن را رمزگذاری می کند و خروجی را در فایلی با نام “encodedfile.txt” ذخیره می کند:

اکو “به لینوکس خوش آمدید” | پایه 64 > encodedfile.txt

برای مشاهده فایل کدگذاری شده می توانید از دستور cat استفاده کنید:

گربه encodedfile.txt
خروجی ترمینال:
linuxhit@hp34:~$ گربه encodedfile.txt
4oCcV2VsY29tZSB0byBMaW51eOKAnQo=

رشته رمزگشایی

همچنین می توانید متن کدگذاری شده base64 را با استفاده از گزینه –decode یا -d رمزگشایی کنید. به عنوان مثال برای رمزگشایی متن رمزگذاری شده base64 “V2VsY29tZSB0byBMaW51eAo=”، دستور به صورت زیر خواهد بود:

اکو 4oCcV2VsY29tZSB0byBMaW51eOKAnQo= | پایه 64 — رمزگشایی

این دستور متن کدگذاری شده base64 را رمزگشایی کرده و متن اصلی را چاپ می کند روی خروجی استاندارد همانطور که در خروجی ترمینال زیر نشان داده شده است.

خروجی ترمینال:
linuxhit@hp34:~$ اکو 4oCcV2VsY29tZSB0byBMaW51eOKAnQo= | پایه 64 — رمزگشایی

پیشنهاد می‌کنیم بخوانید:  درخواست ورودی در Bash

“به لینوکس خوش آمدید”

رمزگذاری فایل متنی

دستور base64 همچنین می تواند برای رمزگذاری یک فایل متنی استفاده شود. برای این مثال اجازه می دهد ابتدا با استفاده از این دستور یک فایل متنی با مقداری محتوا ایجاد کنید روی را terminal، یا از هر فایل متنی استفاده کنید.

اکو “”“من عاشق لینوکس هستم
من عاشق لینوکس هستم
من عاشق لینوکس هستم
LinuxHint من است homepage”
“” > testfile.txt

برای رمزگذاری این یا هر فایل متنی با نام testfile.txt، دستور به صورت زیر خواهد بود:

base64 testfile.txt

این دستور فایل متنی مشخص شده را رمزگذاری می کند و فرم کدگذاری شده آن را چاپ می کند روی خروجی استاندارد همانطور که در خروجی ترمینال زیر نشان داده شده است:

linuxhit@hp34:~$ base64 testfile.txt
SSBMb3ZlIExpbnV4CkkgTG92ZSBMaW51eApJIExvdmUgTGludXgKTGludXhIaW50IGlzIG15IGhv
bWVwYWdlCg==

همچنین می توانید خروجی کدگذاری شده را به جای چاپ در خروجی استاندارد با استفاده از عملگر تغییر مسیر (>) در یک فایل ذخیره کنید. دستور زیر متن فایل را با استفاده از base64 تبدیل می کند و خروجی را در فایل دیگری به نام “encodedfile.txt” ذخیره می کند. این دستور چیزی را روی صفحه چاپ نمی کند.

base64 testfile.txt > encodedfile.txt

برای مشاهده فایل کدگذاری شده می توانید از دستور cat استفاده کنید:

گربه encodedfile.txt
خروجی ترمینال:
linuxhit@hp34:~$ base64 testfile.txt > encodedfile.txt
linuxhit@hp34:~$ گربه encodedfile.txt
SSBMb3ZlIExpbnV4CkkgTG92ZSBMaW51eApJIExvdmUgTGludXgKTGludXhIaW50IGlzIG15IGhv
bWVwYWdlCg==

رمزگشایی فایل متنی

برای رمزگشایی یک فایل متنی کدگذاری شده، از گزینه –decode یا -d استفاده کنید. به عنوان مثال برای رمزگشایی فایل متنی رمزگذاری شده base64 “encodedfile.txt”، دستور به صورت زیر خواهد بود:

پایه 64 encodedfile.txt

این دستور فایل متنی کدگذاری شده base64 را رمزگشایی کرده و متن اصلی را چاپ می کند روی خروجی استاندارد همانطور که در خروجی ترمینال زیر نشان داده شده است:

خروجی ترمینال:
linuxhit@hp34:~$ پایه 64 encodedfile.txt
من عاشق لینوکس هستم
من عاشق لینوکس هستم
من عاشق لینوکس هستم
LinuxHint من است homepage
linuxhit@hp34:~$

رمزگذاری ورودی کاربر

با استفاده از کدگذاری base64، می‌توانیم هر داده‌ای را که کاربر ارائه می‌کند، رمزگذاری کنیم. برای این منظور، ما نیاز به ایجاد یک اسکریپت داریم که ورودی کاربر را می گیرد، آن را با استفاده از کدگذاری base64 رمزگذاری می کند و داده های رمزگذاری شده را چاپ می کند. روی خروجی استاندارد یک اسکریپت “test.sh” با کد زیر ایجاد کنید:

#!/صندوقچه/bash
# برای درخواست ورودی پیام را چاپ کنید
اکو “ارائه برخی از داده ها برای رمزگذاری”
# ورودی را در متغیری به نام “داده” ذخیره کنید
خواندن داده ها
# با استفاده از رمزگذاری base64 رمزگذاری کنید و خروجی را در متغیر “encod_data” ذخیره کنید.
کد_داده=`اکو -n $داده | پایه 64`
# خروجی کدگذاری شده را چاپ کنید
اکو “متن رمزگذاری شده عبارت است از: $encod_data

اسکریپت را به صورت زیر اجرا کنید:

chmod 755 test.sh; ./test.sh

پس از اجرای اسکریپت، از شما خواسته می شود که داده هایی را که می خواهید رمزگذاری کنید، وارد کنید. مقداری داده را تایپ کرده و Enter را فشار دهید، خروجی کدگذاری شده را دریافت خواهید کرد روی صفحه نمایش مطابق شکل زیر:

خروجی ترمینال:
linuxhit@hp34:~$ chmod 755 test.sh; ./test.sh
برخی از داده ها را برای رمزگذاری ارائه دهید
من عاشق لینوکس هستم
متن رمزگذاری شده: SSBsb3ZlIGxpbnV4 است

این متن رمزگذاری شده را می توان از طریق اینترنت یا برنامه دیگری ارسال کرد و سپس با استفاده از یک دستور ساده رمزگشایی کرد. برای این دستور فرض می کنیم که برنامه دریافت کننده، decode.sh، داده های کدگذاری شده را در متغیری در BASH به نام قرار داده است. RECEIVED_ENCODING.

#!/صندوقچه/bash
RECEIVED_ENCODING=SSBsb3ZlIGxpbnV4
RECEIVED_STRING=`اکو $RECEIVED_ENCODING | base64 –decode`
اکو $RECEIVED_STRING

در اینجا می توانید نتایج برنامه دریافت را در خروجی ترمینال مشاهده کنید:

linuxhit@hp34:~$ chmod 755 decode.sh ; ./رمزگشایی.sh
من عاشق لینوکس هستم

نتیجه

به این ترتیب می توانید از base64 برای رمزگذاری و رمزگشایی یک رشته یا یک فایل از خط فرمان استفاده کنید. نتایج را می توان چاپ کرد روی خروجی استاندارد، ذخیره شده در یک متغیر یا فایل، یا از طریق شبکه به برنامه دیگری منتقل می شود. با این حال، به یاد داشته باشید که رمزگذاری شبیه رمزگذاری نیست و می توان به راحتی داده های رمزگذاری شده را آشکار کرد، بنابراین استفاده از رمزگذاری برای انتقال داده های حساس توصیه نمی شود مگر اینکه رمزگذاری شده باشد.

پیشنهاد می‌کنیم بخوانید:  درخواست ورودی در Bash

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-29 16:11:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید