FluentCrypto: رمزنگاری در حالت آسان: پس‌زمینه و انگیزه

III. پیشینه و انگیزه

Node.js یک محیط اجرای جاوا اسکریپت با منبع باز، کراس پلتفرم و باطن برای ساخت برنامه های شبکه مقیاس پذیر است.[1] این یک کتابخانه داخلی به نام “کریپتو” ارائه می دهد که توسعه دهندگان می توانند از آن برای انجام عملیات رمزنگاری روی داده ها استفاده کنند. طبق آخرین نظرسنجی انجام شده توسط وب سایت Stack Overflow در سال 2020،[2] Node.js برای دومین سال متوالی یک رهبر جهانی در میان فریمورک ها است. با این حال، تا جایی که ما می دانیم، هیچ کاری در دانشگاه برای رسیدگی به سوء استفاده از رمزنگاری در این محیط وجود ندارد.

فهرست 1 را در نظر بگیرید که نمونه کدی را برای رمزگذاری داده ها با یک کلید خصوصی نشان می دهد. ما به ماژول رمزنگاری در خط 1 دسترسی پیدا می کنیم. الگوریتم رمزگذاری را مشخص می کنیم، به عنوان مثال، “des”، کلید رمزگذاری را با استفاده از تابع Scrypt استخراج می کنیم، و بردار اولیه (iv) را به ترتیب در خط 2-4 تعریف می کنیم. نمونه‌های کلاس Cipher برای رمزگذاری داده‌ها استفاده می‌شوند، و ما چنین نمونه‌ای را در خط 5 ایجاد و مقداردهی اولیه می‌کنیم. متد cipher.update() رمزگذاری واقعی را انجام می‌دهد. این سه آرگومان به عنوان مثال، داده، رمزگذاری ورودی و رمزگذاری خروجی نیاز دارد. ما این روش را در خط 6 فراخوانی می کنیم تا یک قطعه از متن رمزگذاری شده “utf-8” را رمزگذاری کنیم و نتیجه را در قالب هگز ذخیره کنیم. در پایان، در خط 7، ما به …

Source link