小编Rav*_*ran的帖子

线性反馈移位寄存器解释

我想使用线性反馈移位寄存器来混淆字符串,所以我试图理解下面的wiki代码 在下面的线性反馈移位寄存器的wiki示例中,“ 0xACE1u ”是用作起始状态的十六进制值,但我不明白这个0xB400u是什么?

有人可以解释一下那是什么吗?任何解释如何使用 LFSR 来混淆字符串的链接将不胜感激

int main(void)
{
    uint16_t start_state = 0xACE1u;  /* Any nonzero start state will work. */
    uint16_t lfsr = start_state;
    unsigned period = 0;

    do
    {
        unsigned lsb = lfsr & 1;   /* Get LSB (i.e., the output bit). */
        lfsr >>= 1;                /* Shift register */
        if (lsb) {                 /* If the output bit is 1, apply toggle mask. */
            lfsr ^= 0xB400u;
        }
        ++period;
    } while (lfsr != …
Run Code Online (Sandbox Code Playgroud)

c obfuscation encoding lfsr

1
推荐指数
1
解决办法
6895
查看次数

标签 统计

c ×1

encoding ×1

lfsr ×1

obfuscation ×1