2017-02-28 27 views
4

は、私はそれがどのようにNとEをRSA公開鍵からPythonで抽出しますか?

-----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はpythonで、このキーからのものを法?

from Crypto.PublicKey import RSA 

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

が、小さな成分を抽出する方法は明らかではなかったpycrypto's rsa moduleのマニュアルを参照して、以下:pycryptoパッケージを使用して

は私のようなキーにロードすることができています。これはどうすればいいですか?

答えて

5

ここ1時間ほどで遊んで、グーグルグーグルで遊んだり、ここで解決策を見つけたりしないと、本当に簡単な解決策です。これは、Pythonオブジェクトの仕組みに由来します。

のドキュメントを見てみると、それは、これは我々が

pub_key = RSA.importKey() 

を行うときに我々はRSAobjectを作成していることを教えてくれる何keydata

語る様子がわかり。

print pub_key.n 
print pub_key.e 

というように、そのオブジェクトからこれらの変数にアクセスするには:このオブジェクトは、だから、あなたは、単にしなければならない変数

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

を持っています。例えば

0

あなたの公開鍵は、あなたのディレクトリにalicepublic.pemとして保存されている場合:

>>>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 

インタプリタでこれを行うには、コンポーネントが表示されます。

関連する問題