![](/img/trans.png)
[英]RSA: generate public key from n and e in Python and PHP give me two different public key
[英]How do you extract N and E from a RSA public key in python?
我有一個 RSA 公鑰,它看起來像
-----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-----
我想找出這個鍵的模 N 和指數 E 是什么,在 python 中?
使用 pycrypto 包,我可以像這樣加載到密鑰:
from Crypto.PublicKey import RSA
# read the public key in:
public_key = RSA.importKey(open('key.pub', 'r').read())
但是按照pycrypto 的 rsa 模塊的文檔,不清楚如何提取較小的組件。 我該怎么做呢?
經過一個小時左右的玩耍和谷歌搜索並沒有找到解決方案,這是一個非常簡單的解決方案。 這源於 python 對象的工作方式。
查看文檔時,請注意它如何談論keydata
這告訴我們,當我們做
pub_key = RSA.importKey()
我們正在創建一個 RSAobject。 這個對象有變量
['n', 'e', 'd', 'p', 'q', 'u']
所以你只需要做:
print pub_key.n
print pub_key.e
等等以從該對象訪問這些變量。
例如,如果您的公鑰在您的目錄中保存為 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
在解釋器中執行此操作將顯示組件。
安裝 Crypto 使用這個: pip install pycryptodome
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.