擅长:python、mysql、java
<p>首先,计算您有多少“额外”字符:</p>
<pre><code>extra = len(s) % 16
</code></pre>
<p>然后,有两种可能:</p>
<h2>额外(>;0</h2>
<p>计算填充16个字符块所需的填充量:</p>
^{2}$
<p>最后,添加<code>padsize</code>填充字符(也许空格<code/>) at the end:</p>
^{pr 3}$
<h1>extra == 0</h1>
<p><code>s</code>就可以了。在</p>
<h2>把所有的东西放在一起</h2>
<p>并且不使用<code>padsize</code>:</p>
<pre><code>extra = len(s) % 16
if extra > 0:
s = s + (' ' * (16 - extra))
</code></pre>
<h2>随机填充</h2>
<p>当然,<code>' '</code>并不是唯一可能的填充。您可以使用<a href="http://docs.python.org/2/library/random.html#random.choice" rel="nofollow">^{<cd5>}</a>从某个列表中选择一个字符并将其用作填充。在</p>
<p>有一些很好的预定义字符列表,您可以使用<a href="http://docs.python.org/2/library/string.html#string.letters" rel="nofollow">^{<cd6>}</a>等:</p>
<pre><code>padding = random.choice(string.letters)
</code></pre>
<p>或者使用您自己的可能填充列表:</p>
<pre><code>padding = random.choice("x|#_ ")
</code></pre>
<p>所以,把所有的东西重新组合起来:</p>
<pre><code>import string
import random
padding = random.choice(string.letters)
extra = len(s) % 16
if extra > 0:
s = s + (padding * (16 - extra))
</code></pre>