如何将字符串转换为 "BEGIN RSA PUBLIC KEY" 格式
How can I Covert a string into format of "BEGIN RSA PUBLIC KEY"
我模拟登录一个网站,服务器反馈一个"pubkey"进行RSA加密。我应该用 "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编码的public密钥文件,可以识别以“-----BEGIN PUBLIC KEY-----”开头的内容,以及 return 一个 public 键对象。
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.
我模拟登录一个网站,服务器反馈一个"pubkey"进行RSA加密。我应该用 "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编码的public密钥文件,可以识别以“-----BEGIN PUBLIC KEY-----”开头的内容,以及 return 一个 public 键对象。
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.