در JavaScript تابعی بنویسید که یک رشته و یک مقدار شیفت بگیرد و رشته را با روش رمز سزار (Caesar cipher) رمزگذاری کند و تابعی برای بازگشایی (دیکریپت) همان متن با استفاده از شیفت معکوس ارائه دهد.
2.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:53 0.0
برای حل، از جاوااسکریپت ساده استفاده کنید: با مرور هر کاراکتر رشته و گرفتن کد یونیکد آن (charCodeAt) و اعمال شیفت روی حروف الفبای لاتین (با نگهداشتن حروف بزرگ و کوچک جداگانه) و استفاده از عملگر مدولو برای پیچیدن (wrap-around) بین 'A'-'Z' و 'a'-'z'، حرف رمز را بسازید؛ برای دیکریپت کافیست شیفت منفی را اعمال کنید یا تابع جداگانهای بنویسید که شیفت را معکوس کند. نکات: کاراکترهای غیرحرفی را بدون تغییر نگه دارید، تستهایی با شیفتهای مثبت، منفی و مقادیر بزرگتر از 26 انجام دهید، و توجه کنید که رمز سزار برای کاربردهای واقعی ناامن است — برای رمزنگاری واقعی از Web Crypto API (در مرورگر) یا ماژول crypto در Node.js استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای بهبود کارکرد رمز سزار، شیفت را با محاسبه مدول 26 انجام دهید تا سمت راست و چپ را هم پشتیبانی کند و حروف کوچک و بزرگ را جدا در نظر بگیرید. همچنین هر کاراکتر غیر حروف را بدون تغییر رها کنید و برای هر کاراکتر حرفی که پیدا میشود با base قرارگرفته در 'A'-'Z' یا 'a'-'z' محاسبه شود، از (charCodeAt - base + shift) % 26 استفاده کنید و دوباره به کاراکتر تبدیل کنید. آزمایش با شیفتهای مثبت، منفی و مقادیر بزرگتر از 26 را فراموش نکنید تا wrap-around درست کار کند. توجه کنید رمز سزار برای استفاده واقعی امن نیست و برای رمزنگاری امن از Web Crypto یا crypto در Node.js استفاده کنید.
گزارش