如何制作长度为16的倍数的文本?

时间:2015-01-26 21:40:38

标签: python

我有不同长度的字符串,例如:

text_1 = 'example'
text_2 = 'a'
text_3 = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi.'

我必须添加chars(any),因为text必须是16的倍数。

我需要这样做:

c = AES.new('somekey', AES.MODE_ECB)
e_data = cipher.encrypt(text)    

我该怎么做?

2 个答案:

答案 0 :(得分:2)

这应该做:

>>> s = 'fooo'
>>> s += ' ' * (16 - (len(s) % 16))
>>> s
'fooo            '
>>> len(s)
16

此处所需的字符数为16 - (len(s) % 16),因为len(s) % 16是将长度除以16时剩余的字符数。

答案 1 :(得分:1)

添加16和模数

之间的差异
text_1 += ((16 - len(text_1) % 16)*'X')