[英]How can I construct a Python string that is 16 bytes long?
当我制作一个字符的Python字符串时,即
txt = "h"
然后检查它的大小,我得到
import sys
sys.getsizeof(txt)
34
如果一个字符为34个字节,我如何制作一个16个字节的字符串?
PS我正在OFB模式下使用PyCrypto AES ,它需要输入16个字节
sys.getsizeof(obj)
返回对象的大小,包括内部值。 它包含的内容不止一个字符串的字符或字节。
如果您想知道bytes
对象或str
多长时间,则可以调用len(byteString)
或len(string)
。
我假设您要使用生成随机IV或密钥。 这可以通过以下方式完成:
from Crypto import Random
iv = Random.new().read(16)
如果系统具有足够的熵,则将调用CSPRNG。 您也可以使用AES.block_size
而不是16
。
getsizeof
不会返回字符串的实际大小,但是会导致额外的垃圾回收器开销。 如图所示,波纹管test
以空字符串开始,但由于上述原因,分配给它的内存不为零。
>>> test = ""
>>> sys.getsizeof(test)
37
>>> test = "" + "h"
>>> sys.getsizeof(test)
38
>>> test = "" + "h" + "h"
>>> sys.getsizeof(test)
39
>>>
要创建一个16字节的字符串,一种方法是:
>>> test = " " * 16
>>> sys.getsizeof(test)
53
53-37 = 16字节
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.