我知道在C#RSACryptoServiceProvider
中有ToXmlString方法支持在XML文件中以base64(?)格式导出n和e值。我正在使用PyCrypto RSA模块RSA.generate创建一个新密钥。
我知道有一个exportKey()
功能,目前我可以用PEM格式保存它。以PEM格式保存它给我一些如下:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfGtS6zBwWeXWelsSOhG1 / PE40 goxMGHe9bb1UBtKBAjhi00ZKxwygM5cbTj + K1 + wNaIi64UpE8ixOfRY9hVUpYZ1r QP / Ox8rWyvqdKW6FTm9PIUz4chrbyjgTUENWdfk9Nl6GJ1ZyeN49z4j4QavFBxe9 H + VkLc91hr7MHbq53QIDAQAB
其中,最后4个字符AQAB似乎是65537的base64表示,它是指数。但是,如果我将除了AQAB之外的剩余部分解释为模数的base64表示,那么我最终会出现解码错误。
我尝试使用struct.pack
将n(模数)转换为字节以获得base64表示,但最终会出现溢出。 n非常大,我不确定它是什么数据类型:
1117271960777822123914386767255132691236470141330742633576958345789905066768642795553191088144426491796396398212407134324451 3691835386930230821948992495529518257623152363611603952277356641370464835962436639078429958826695573074110215764561518716014 9223488427614600372039517756352143348068193387291216981965277
有没有办法将PyCrypto RSA模块创建的公钥的模数和指数转换为ToXmlString功能?