概述
这里有一个函数,可以用来将字节字符串中的值分成指定大小的元组。字节字符串首先作为整数列表输出,然后是与之对应的元组列表。请注意,在示例中,最后一个元组的最后两个值除以3后,是如何用零填充的,因为字节字符串长度(16)不是该值的倍数。在将其分成大小为4的元组时不会发生这种情况(因此没有附加填充值)。
还要注意
grouper()
itertools
documentation
.
from itertools import zip_longest
def grouper(n, iterable, fillvalue=None):
"s -> (s0, s1...sn-1), (sn, sn+1...s2n-1), (s2n, s2n+1...s3n-1), ..."
return zip_longest(*[iter(iterable)]*n, fillvalue=fillvalue)
aes_key = b'x80inxbex06bx8fx8fZ}l-xb4jxb5x1f'
ints = list(aes_key)
print(ints)
tuples = list(grouper(3, aes_key, fillvalue=0))
print(tuples)
tuples = list(grouper(4, aes_key, fillvalue=0))
print(tuples)
[128, 105, 110, 190, 6, 98, 143, 143, 90, 125, 108, 45, 180, 106, 181, 31]
[(128, 105, 110), (190, 6, 98), (143, 143, 90), (125, 108, 45), (180, 106, 181), (31, 0, 0)]
[(128, 105, 110, 190), (6, 98, 143, 143), (90, 125, 108, 45), (180, 106, 181, 31)]
由于您似乎想用这些数据制作一个图像,您可能仍然需要根据图像每行中像素的数量进一步格式化该数据。
可以将元组列表转换回如下所示的字节字符串:
# To convert a list of tuples back into a byte string.
from itertools import chain
print(bytes(chain.from_iterable(tuples)))
输出:
b'x80inxbex06bx8fx8fZ}l-xb4jxb5x1f'
但是,如果没有添加填充值,这将只与原始字节字符串相同(与使用4元组的情况一样)。
最后
以上就是壮观樱桃为你收集整理的python固定种子_如何根据python中的种子生成特定大小的密钥的全部内容,希望文章能够帮你解决python固定种子_如何根据python中的种子生成特定大小的密钥所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复