2017-02-28 7 views
4

가 나는어떻게 파이썬에서 RSA 공개 키로 N과 E를 추출합니까?

-----BEGIN PUBLIC KEY----- 
MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEAvm0WYXg6mJc5GOWJ+5jk 
htbBOe0gyTlujRER++cvKOxbIdg8So3mV1eASEHxqSnp5lGa8R9Pyxz3iaZpBCBB 
vDB7Fbbe5koVTmt+K06o96ki1/4NbHGyRVL/x5fFiVuTVfmk+GZNakH5dXDq0fwv 
JyVmUtGYAiMJWPni2hGpAsbyjzLix9UNX5XiYIIrIr55IHtD5u1XNkmYLOdVQ98r 
6hez3t2eaE0pP2k+mjRach+2tD93PBZmreHgVZtejumi+ZWLMqpd++AY0AzH0m8E 
6sa8JFUAiYZbVtmrcGTCUCkzC2Es1/knSeZ41xki1qD0V3uw/APP8Q+BgbX3SJp0 
EQIBAw== 
-----END PUBLIC KEY----- 

내가 발견 할 것 같습니다되도록 RSA 공개 키를 가지고있는 N과 지수 E 파이썬에서,이 키에서있는 모듈로?

pycrypto 패키지를 사용하여 내가 같은 키에로드 할 수 있어요 :

from Crypto.PublicKey import RSA 

# read the public key in: 
public_key = RSA.importKey(open('key.pub', 'r').read()) 

하지만 작은 구성 요소를 추출하는 방법을하지 분명했다 pycrypto's rsa module의 문서를 다음과 같습니다. 어떻게해야합니까?

답변

5

한 시간 정도 지나서 놀고 놀거나 여기에서 해결책을 찾지 못하면 정말 간단한 해결책입니다. 파이썬 객체가 작동하는 방식에서 유래합니다.

문서를 볼 때, 그것은이 우리가

pub_key = RSA.importKey() 

을 수행 할 때 우리가 RSAobject을 만드는 것을 우리에게 무엇 keydata

에 대해 이야기하는 방법을 알 수 있습니다. 그래서

print pub_key.n 
print pub_key.e 

및 해당 객체에서 해당 변수에 액세스 할이 객체는 변수

['n', 'e', 'd', 'p', 'q', 'u'] 

그래서 당신은 간단하게 할 필요가있다.

공개 키 디렉토리에 alicepublic.pem로 저장됩니다 예를 들어
0

: 인터프리터에서 이렇게

>>>from Crypto.PublicKey import RSA 
>>>f = open("alicepublic.pem", "r") 
>>>key = RSA.importKey(f.read()) 
>>>print key.n #displays n 
>>>print key.e #displays e 

는 구성 요소를 표시합니다.