擅长:python、mysql、java
<p>在检查了PyJWT源代码之后,很明显,库希望PEM数据是字符串类型,但是您提供的是bytestring(在您的问题中,<code>b'...'</code>文本很明显)。
有问题的函数是<a href="https://github.com/jpadilla/pyjwt/blob/29f1ef91ab016aa242da1b6ed5a08d51961deb54/jwt/algorithms.py#L158-L170" rel="nofollow">^{<cd2>}</a>,还有{a2}的定义。在</p>
<p>必须将私钥数据解码为本机<code>str</code>类型:</p>
<pre><code>private_key_bytes = OpenSSL.crypto.dump_privatekey(OpenSSL.crypto.FILETYPE_PEM, p12.get_privatekey())
private_key = private_key_bytes.decode('utf-8')
</code></pre>
<p>这似乎只对Python3是必需的,但是上面的代码应该也适用于Python2。在</p>