我想从任何人那里得到一些关于如何在Python中实现这个算法的信息:
“混淆数据的一种常用技术是使用异或(异或)和一些密钥;这种方法既便宜又对称。当它用于包含大量null的可移植可执行文件格式时,会出现一个问题,因为用您的键执行的异或操作最终会写出您的密钥。 一个稍微复杂一点的算法是实现一个线性反馈移位寄存器来生成一个与数据异或的密钥流。对于这个版本,您将使用8位移位寄存器。移位寄存器用一个值初始化,并逐步生成密钥流。在每一步之后,从移位寄存器读取下一个字节。在
步进寄存器:
该功能应符合以下签名: 字符串LFSR(int dataLength,BYTE*data,unsigned char初始值) 示例测试: 资料图:“苹果” 键:0x61 结果:'\xC4\xB7\x86\x17\xCD' 数据:'\xC4\xB7\x86\x17\xCD'键:0x61 结果:“苹果”
我不确定如何开始这方面的工作,我的Python知识还处于初级水平。在
在Python3中,
bytes
对象已经知道它的长度,因此不需要显式地将其传递到函数中这是一个生成器而不是函数,因为它使用}。我们可以说LFSR是一个整数的集合。在
yield
而不是{如果你看字节的帮助
^{pr2}$您可以看到我们使用的是第一个构造函数:
bytes(iterable_of_ints)
相关问题 更多 >
编程相关推荐