رمز سزار یکی از سادهترین روشهای رمزنگاری است. در این روش برای رمز کردن یک رشته، یک عدد ثابت که عضو بازهی است در نظر گرفته میشود و همهی کاراکترهای رشته، واحد به سمت جلو شیفت داده میشوند. برای مثال اگر را در نظر بگیریم، کاراکتر A
به B
یا کاراکتر Z
به A
تبدیل میشود. برای حروف کوچک انگلیسی نیز به همین ترتیب تبدیل میشوند؛ برای مثال اگر را در نظر بگیریم، کاراکتر z
به b
و کاراکتر h
به j
تبدیل میشود. در مقابل فرایند رمزنگاری فرایند رمزگشایی را داریم که برعکس فرایند رمزنگاری صورت میگیرد، یعنی هر کاراکتر واحد به سمت عقب شیفت داده میشود.
در این فرایندها، میتوان هر کاراکتر را یک عدد عضو بازهی در نظر گرفت؛ یعنی کاراکترهای a
و A
با عدد 0
متناظر هستند، کاراکترهای b
و B
با عدد 1
متناظر هستند و ...
توجه: اگر بزرگتر از ۲۵ باشد، باشد، باید باقیماندهی تقسیم آن بر ۲۶ را در نظر گرفت. همچنین، تضمین میشود که رشتهی ورودی فقط شامل کاراکترهای a-z
و A-Z
است (یا ممکن است رشتهای خالی باشد).
فرایند رمزنگاری:
فرایند رمزگشایی:
پروژه اولیه
پروژه اولیه را از این لینک دانلود کنید.
ساختار فایلها
راه اندازی پروژه
- ابتدا پروژۀ اولیه را دانلود و از حالت فشرده خارج کنید.
- سپس فایل
main.js
را در ادیتور خود باز کنید و کد مورد نظر خود را در آن پیاده سازی کنید.
خواسته های مسئله
در این مسئله شما باید دو تابع encrypt
و decrypt
را پیادهسازی کنید که این دو تابع باید شرایط زیر را دارا باشند:
-
تابع
encrypt(str, n)
: این تابع، کاراکترهای رشتهی ورودی را به اندازهی n واحد به جلو شیفت میدهد. -
تابع
decrypt(str, n)
: این تابع، کاراکترهای رشتهی ورودی را به اندازهی n واحد به عقب شیفت میدهد.
مثال
خروجی کد بالا:
نکات
- شما تنها مجاز به اعمال تغییرات در فایل
main.js
هستید. - به هنگام ثبت پاسخ تنها فایل
main.js
خود را آپلود نمایید.
ارسال پاسخ برای این سؤال