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