یک تابع جاوااسکریپت بنویسید که یک رشته ورودی را با AES رمزنگاری کند و سپس همان متن را از همان کلید رمزگشایی کرده و خروجی اصلی را برگرداند.

17.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 02:39

0.0

برای حل این مسئله می‌توانید از کتابخانه ساده‌ای مثل CryptoJS (برای مرورگر یا Node) یا از ماژول داخلی crypto در Node.js استفاده کنید: متن را با یک کلید مشترک و حالت AES (مثلاً AES-256-CBC یا AES) رمزنگاری کنید، خروجی را به Base64 یا hex تبدیل کنید، و برای رمزگشایی همان کلید و IV را استفاده و داده را به UTF-8 برگردانید. نکات: برای امنیت واقعی از IV تصادفی و مشتق‌سازی کلید (PBKDF2) استفاده کنید، از هاردکد کردن کلید خودداری کنید و هنگام تبدیل رشته‌ها به بایت/از بایت مطمئن شوید که انکودینگ‌ها یکسان باشند؛ برای شروع CryptoJS.AES.encrypt(text, key).toString() و CryptoJS.AES.decrypt(ciphertext, key).toString(CryptoJS.enc.Utf8) روش ساده و مناسب مبتدیان است.

توسط پژوهشگر در 198 روز قبل ساعت 02:39
دسته بندی ها: JavaScript JavaScript for beginner
reyhaneh در 198 روز قبل ساعت 02:40

برای استفاده‌ی ایمن از AES حتماً از IV تصادفی به همراه کلید مشتق‌شده (مثلاً PBKDF2 یا scrypt) استفاده کنید و IV را همراه ciphertext ذخیره یا منتقل کنید زیرا هاردکد کردن کلید یا استفاده از IV ثابت آسیب‌پذیری ایجاد می‌کند. هنگام تبدیل رشته‌ها به بایت‌ها مطمئن شوید encodingها یکسان باشند (UTF-8) و خروجی رمزنگاری را به Base64 یا hex تبدیل کنید تا هنگام بازخوانی دقیق بازیابی شود. برای نمونه‌سازی ساده CryptoJS مناسب است اما در محیط تولید از ماژول crypto خود Node یا کتابخانه‌های مورد تایید با مدیریت کلید استفاده کنید.

گزارش

1 پاسخ

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

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