یک تابع پایتون بنویس که یک پیام متنی را با کلید خصوصی RSA امضا کند و هدرهای HTTP حاوی "X-Signature" (امضای Base64) و "X-Public-Key" (کلید عمومی به صورت PEM) بازگرداند.

7.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 03:09

0.0

برای پیاده‌سازی می‌توانید از کتابخانه ساده rsa (pip install rsa) استفاده کنید: با rsa.newkeys(2048) کلید خصوصی و عمومی بسازید، پیام را به بایت تبدیل کنید، با rsa.sign(message_bytes, priv_key, 'SHA-256') امضا بگیرید و سپس امضا را با base64.b64encode رمزگذاری کنید. کلید عمومی را با pub_key.save_pkcs1().decode() به فرمت PEM تبدیل کرده و در دیکشنری هدرها قرار دهید؛ مثال خروجی: {'X-Signature': '...', 'X-Public-Key': '-----BEGIN PUBLIC KEY-----...'} . حتماً از utf-8 برای تبدیل رشته‌ها به بایت استفاده کنید و کلید خصوصی را امن نگه دارید.

توسط پژوهشگر در 220 روز قبل ساعت 03:09
دسته بندی ها: Python Python for beginner
arash در 220 روز قبل ساعت 07:19

برای امنیت بهتر، ترجیح بدهید از کتابخانه cryptography به جای rsa ساده استفاده کنید تا padding امن و مدیریت کلید بهتری فراهم شود. مطمئن شوید پیام را با UTF-8 به بایت تبدیل کرده، امضا را با SHA-256 انجام داده و نتیجه را با base64 رمزگذاری کنید. برای جلوگیری از حملات بازتولید و تکرار، از یک timestamp یا nonce استفاده کنید و کلید خصوصی را در مخزن امن نگه دارید. خروجی هدرها هم باید X-Signature به صورت Base64 و X-Public-Key به صورت PEM کامل باشد تا پذیرش و پردازش سرویس‌های گیرنده ساده‌تر باشد.

گزارش

1 پاسخ

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

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