擅长:python、mysql、java
<p>查看代码:</p>
<pre><code>>>> base64.b64encode(combined.digest(), altchars="AB")
'PeFC3irNFx8fuzwjAzAfEAup9cz6xujsf2gAIH2GdUM='
</code></pre>
<p>在base64中编码的字符串是名为<code>digest()</code>的函数的结果。如果digest函数产生固定长度值(例如,如果它计算MD5或SHA1 digest),那么b64encode的参数将始终是相同的长度。</p>
<p><em>如果以上是真的,</em>那么可以去掉后面的等号,因为它们的数目总是相同的。如果这样做,只需在解码前在字符串中附加相同数量的等号。</p>
<p>如果摘要不是固定的长度,那么修剪等号是不安全的。</p>
<p><strong>编辑:</strong>您可能正在使用SHA-256摘要?SHA-256摘要是256位(或32字节)。32字节是10组3,加上2个剩余字节。从<a href="http://en.wikipedia.org/wiki/Base64#Decoding_Base64_with_padding" rel="noreferrer">Wikipedia section on padding</a>中可以看出,这意味着您总是有一个尾随的等于。如果是SHA-256,那么可以去掉它,只要你记得在解码之前再加一次就行了。</p>