Estoy usando RSA para cifrar/descifrar mis claves de sesión en Python. Estoy usando la biblioteca Pycrypto. Después de generar el par de llaves, quiero extraer la clave privada y la clave pública de esa clave generada y almacenarlas en diferentes archivos. ¿Cómo puedo hacer esto? Puedo ver el método privado tiene que puede decir que el par de llaves generado tiene un componente privado pero no puede encontrar cómo extraer las dos claves de este par de llaves generado. Cualquier sugerencia sería de gran ayuda.Uso de RSA en Python
17
A
Respuesta
40
Si desea obtener partes de acuerdo a lo fundamental, no es key
atributo para que:
>>> from Crypto.PublicKey import RSA
>>> RSAkey = RSA.generate(1024)
>>> getattr(RSAkey.key, 'n')
13773...L
>>> getattr(RSAkey.key, 'p')
11731...L
>>> getattr(RSAkey.key, 'q')
11740...L
componentes disponibles son 'n', 'e', 'd', 'p', 'q ', 'u'
Si lo que desea es guardarlo en PEM, debe utilizar el método exportKey()
(disponible desde 2,2)
>>> private = RSA.generate(1024)
>>> public = private.publickey()
>>> private.exportKey()
'-----BEGIN RSA PRIVATE KEY-----\nMIICXgIBAAKBgQDo1M0P3nryaF8ZITv8vCFVnjUJ1mnIsrqXZRTzjin69xepr3cz\nKicG3EYSUqMODQAsvMj0tGMo+ElGOVOkPFLVVBHd8izgA/E1RqUzbUDMj4WnhlhA\nQq7tNaViOXNaZ7krJZHabZKxfYvLAQtm4tr+m5NtXPBaWvjwhd5M9xvktwIDAQAB\nAoGBANVsS1Rikbymo5V7e2teYAgFb4THAEyyWIvyYlQnWp/r48rtRoyl9QQ64hhl\nm4WDsUdQ/bwhpkul3DT804jWqu2V71p68rQP7h5D6ldCBUr5nQc9o/uEyy4YCgxD\n/ZxNiY5Bb/lMP9nhb2NbG4184mhUMHu+06wWX6RrXQtMtjYhAkEA8DioToMZIy3s\nhPohri3CAgByV2Jxf7JPqVZ93JjlSlBz+aybSv1mOJUPRFpkMk2xiPmHtEn16hYr\nesVK11tcjwJBAPgf4QYAw9dV+DuVqdwz+kmTjnlkr0Q7fjaGfl60DWmuLWmxiRhe\nMYQ2+8iyPDmxcPFTGSpGqyvyJDjQ/wOlWVkCQQCRIuotZW/OnXSFc0reHa9V3kc3\nHLdOW8FdonAw0//Uwn8PnoXE7QzRqt2qgqJ+8goNpBWli/oUEIj8iC8LpptpAkBV\nFFlMfaaph8j+ZWtBHnGMGRSZe3S9qMi2WZerUYHn4tmfjEi+Gk5QT6o2Pyd3gOiB\nV0Uhwemfv/+7m65VybTBAkEA5H59kG+B9HHD5hJtksAtMh8dxk/MI8G0csduU0vu\n7K5ejL522XsHurVrWdqnk6KvjlRXqB4FsMWLE6RBgBNV0A==\n-----END RSA PRIVATE KEY-----'
>>> public.exportKey()
'-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDo1M0P3nryaF8ZITv8vCFVnjUJ\n1mnIsrqXZRTzjin69xepr3czKicG3EYSUqMODQAsvMj0tGMo+ElGOVOkPFLVVBHd\n8izgA/E1RqUzbUDMj4WnhlhAQq7tNaViOXNaZ7krJZHabZKxfYvLAQtm4tr+m5Nt\nXPBaWvjwhd5M9xvktwIDAQAB\n-----END PUBLIC KEY-----'
Cuestiones relacionadas
- 1. Uso de RSA en C#
- 2. Implementando RSA completo en Python
- 3. Uso de claves RSA generadas por Crypto ++ en OpenSSL
- 4. ssh usando python sin claves RSA
- 5. ¿Cómo se verifica una firma RSA SHA1 en Python?
- 6. Convertir clave pública RSA a RSA DER
- 7. Código RSA en matlab
- 8. Cifrado RSA en Java
- 9. Uso de una clave pública de RSA para descifrar una cadena cifrada con la clave privada de RSA
- 10. Problema al interpolar firmas RSA entre Python y Java/Scala
- 11. Uso ordenados() en Python
- 12. Uso de eval en Python?
- 13. Uso de pickle.dump en Python
- 14. Tamaño de firma RSA?
- 15. cifrado RSA-descifrado en iPhone
- 16. Cifrado RSA de datos grandes en C#
- 17. Encriptación/descifrado de RSA Problema en .NET
- 18. Descifrado de encriptación RSA en Android
- 19. Encriptación de cadena RSA en Android
- 20. Encriptar/descifrar RSA
- 21. Ejemplo de uso de assert en Python?
- 22. Uso adecuado frente al uso excesivo de * args en Python
- 23. Java RSA Encryption
- 24. Uso de números complejos en python
- 25. Uso de HTMLParser en Python 3.2
- 26. Uso adecuado de mutexes en Python
- 27. Uso de operadores inversos en Python
- 28. Uso de OpenGL con Python
- 29. Uso de Python con WAMP
- 30. Uso de Python 3 super()