در JavaScript تابعی بنویسید که یک رشته و یک مقدار شیفت بگیرد و رشته را با روش رمز سزار (Caesar cipher) رمزگذاری کند و تابعی برای بازگشایی (دیکریپت) همان متن با استفاده از شیفت معکوس ارائه دهد.

2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:53

0.0

برای حل، از جاوااسکریپت ساده استفاده کنید: با مرور هر کاراکتر رشته و گرفتن کد یونی‌کد آن (charCodeAt) و اعمال شیفت روی حروف الفبای لاتین (با نگه‌داشتن حروف بزرگ و کوچک جداگانه) و استفاده از عملگر مدولو برای پیچیدن (wrap-around) بین 'A'-'Z' و 'a'-'z'، حرف رمز را بسازید؛ برای دیکریپت کافی‌ست شیفت منفی را اعمال کنید یا تابع جداگانه‌ای بنویسید که شیفت را معکوس کند. نکات: کاراکترهای غیرحرفی را بدون تغییر نگه دارید، تست‌هایی با شیفت‌های مثبت، منفی و مقادیر بزرگ‌تر از 26 انجام دهید، و توجه کنید که رمز سزار برای کاربردهای واقعی ناامن است — برای رمزنگاری واقعی از Web Crypto API (در مرورگر) یا ماژول crypto در Node.js استفاده کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:53
دسته بندی ها: JavaScript JavaScript for beginner
arash در 220 روز قبل ساعت 11:38

برای بهبود کارکرد رمز سزار، شیفت را با محاسبه مدول 26 انجام دهید تا سمت راست و چپ را هم پشتیبانی کند و حروف کوچک و بزرگ را جدا در نظر بگیرید. همچنین هر کاراکتر غیر حروف را بدون تغییر رها کنید و برای هر کاراکتر حرفی که پیدا می‌شود با base قرارگرفته در 'A'-'Z' یا 'a'-'z' محاسبه شود، از (charCodeAt - base + shift) % 26 استفاده کنید و دوباره به کاراکتر تبدیل کنید. آزمایش با شیفت‌های مثبت، منفی و مقادیر بزرگ‌تر از 26 را فراموش نکنید تا wrap-around درست کار کند. توجه کنید رمز سزار برای استفاده واقعی امن نیست و برای رمزنگاری امن از Web Crypto یا crypto در Node.js استفاده کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری