के साथ एक आरएसए सार्वजनिक कुंजी का उपयोग करके डिक्रिप्ट जहां तक मैं समझता हूं, मुझे प्रामाणिकता या गोपनीयता सुनिश्चित करने के लिए आरएसए का उपयोग करने में सक्षम होना चाहिए, जैसा कि मेरी इच्छा है। मेरे मामले में, मैं प्रामाणिकता सुनिश्चित करना चाहता हूं इसलिए मैं निजी कुंजी के साथ डेटा एन्क्रिप्ट करता हूं और किसी को इसे सार्वजनिक कुंजी से डिक्रिप्ट करने की अनुमति देता हूं। डेटा वास्तव में गुप्त नहीं है लेकिन मुझे यह गारंटी देने की आवश्यकता है कि यह सार्वजनिक (और निजी) कुंजी के मालिक द्वारा बनाया गया था।PyCrypto
जब मैं PyCrypto का उपयोग कर डिक्रिप्ट करने के लिए कोशिश मैं PyCrypto से कोई निजी कुंजी त्रुटि मिलती है। कोड यह है:
def _decrypt_rsa(decrypt_key_file, cipher_text):
from Crypto.PublicKey import RSA
from base64 import b64decode
key = open(decrypt_key_file, "r").read()
rsakey = RSA.importKey(key)
raw_cipher_data = b64decode(cipher_text)
decrypted = rsakey.decrypt(raw_cipher_data)
return decrypted
मैं सार्वजनिक कुंजी फ़ाइल का पथ के साथ यह फोन कर रहा हूँ एन्क्रिप्टेड डाटा मुझे द्वारा उत्पन्न नहीं कर रहा है और उस पर Python लेकिन पीएचपी के साथ नहीं किया गया था (OpenSSH प्रारूप में।)। PHP में openssl_public_decrypt
फ़ंक्शन है जो इस डेटा को आसानी से डिक्रिप्ट करता है।
क्या यह पिकक्रिप्टो के साथ सार्वजनिक कुंजी का उपयोग करके डिक्रिप्ट करना संभव है?
आपने इसे उलट दिया है। सार्वजनिक कुंजी का उपयोग एन्क्रिप्ट करने के लिए किया जाता है और निजी कुंजी का उपयोग डिक्रिप्ट करने के लिए किया जाता है। – jchysk
सार्वजनिक डिक्रिप्ट एन्क्रिप्ट के समान है। आपकी समस्या इस तरह से निर्धारित किया जा सकता है: 'decrypted = rsakey.encrypt (raw_cipher_data, 0)' – Helio
स्रोत वास्तव में निजी कुंजी के साथ एन्क्रिप्टेड गया है, तो वे प्रभावी रूप से डेटा पर हस्ताक्षर किए गए हैं। जावा जैसे कुछ टूल, आपको ऐसा करने देते हैं। हस्ताक्षर को डिक्रिप्ट करने के लिए आप एक सार्वजनिक कुंजी (या एक निजी कुंजी का सार्वजनिक हिस्सा) का उपयोग कर सकते हैं। देखें: https://stackoverflow.com/questions/48280670/pycrypto-how-to-view-raw-rsa-signature-data –