[英]How can I Covert a string into format of “BEGIN RSA PUBLIC KEY”
我正在模擬登錄網站,服務器反饋RSA加密的“pubkey”。 我應該使用“pubkey”加密我的密碼。 內容是:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDWgW3gsfqzrID7Bz+pfcHD1TMP
CFAE0/1fnJnPDumXD6p75LTCpkA1jxVFpunLqIgKtSr8M84z5dyX4QQ9Rtb4tcd6
3ptgQZkoIGqrVdwskL8pSkTjI6zkG4ebB5UmlNiRQw7TcwmufOfYfAS94PGZaDxH
wFGtMyOvP2UXBxduMwIDAQAB
-----END PUBLIC KEY-----
現在,問題是我無法使用python2.7.8的rsa包將其轉換為“RSAPublicKey”格式。
錯誤代碼:
key = rsa.key.PublicKey.load_pkcs1(self.publickey["pubkey"].encode("utf-8"), "PEM")
錯誤提示:
ValueError: No PEM start marker "-----BEGIN RSA PUBLIC KEY-----" found
我會使用正確的“rsapublickey”:
password_rsaed = base64.b64encode(rsa.encrypt(self.password.encode("utf-8"), key))
我有一個解決問題的方法。 它的 :
rsa.PublicKey.load_pkcs1_openssl_pem(cls, keyfile)
它從OpenSSL加載PKCS#1.5 PEM編碼的公鑰文件,並且可以識別以“----- BEGIN PUBLIC KEY -----”開頭的內容,並返回一個publickey對象。
print(type(self.publickey["pubkey"].encode("utf-8")))
key = rsa.PublicKey.load_pkcs1_openssl_pem(self.publickey["pubkey"].encode("utf-8"))
print(type(key))
結果:
<class 'bytes'>
<class 'rsa.key.PublicKey'>
提示:該方法來自python3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.