擅长:python、mysql、java
<p>看看<a href="https://pycryptodome.readthedocs.io/en/latest/src/cipher/cipher.html" rel="nofollow noreferrer">docs</a>,您没有正确使用密码模块。在</p>
<p>调用<code>AES.new()</code>时,传入的键必须是16个字符的字符串,因此需要填充<code>key</code>属性的长度为16个字节。在</p>
<p><code>encrypt()</code>方法以一个字节字符串作为输入,在这里您似乎试图传递一个长度(在您的示例中甚至没有定义)。在</p>
<p>您的评论建议您通过了它,否则您不会看到<code>AttributeError</code>异常。在</p>
<p>您看到的<code>AttributeError</code>是因为<code>Cipher.encrypt()</code>返回一个字节数组,而字节数组没有<code>encode()</code>方法。首先需要将字节数组转换为字符串。以下来自<a href="https://stackoverflow.com/questions/38727390/how-can-i-decode-a-utf-8-byte-array-to-a-string-in-python2">here</a>的代码片段应该有帮助:</p>
<pre><code>import array
decoded = array.array('b', your_input).tostring().decode('utf-8')
</code></pre>
<p>显然应该将<code>'utf-8'</code>替换为<code>'base64'</code>。在</p>