Почему бы вам просто не XOR вашей произвольной последовательности в тип правильной длины (добавив его при необходимости к части)? Например, если вы хотите, чтобы начальное число "paxdiablo" и ваш PRNG имел четырехбайтовое начальное число:
paxd 0x70617864
iabl 0x6961626c
opax 0x6f706178
----------
0x76707b70 or 0x707b7076 (Intel-endian).
Я знаю, что семя выглядит искусственным (и это потому, что ключ выбран из буквенных символов). Если вы действительно хотите, чтобы фраза отличалась от того, где фраза может быть похожего диапазона, снова сделайте XOR с помощью дифференциатора, например 0xdeadbeef
или 0xa55a1248
:
paxd 0x70617864 0x70617864
iabl 0x6961626c 0x6961626c
opax 0x6f706178 0x6f706178
0xdeadbeef 0xa55a1248
---------- ----------
0xa8ddc59f 0xd32a6938
Я предпочитаю второй, поскольку он с большей готовностью перемещает подобные байты в разрозненные диапазоны (старшие разряды байтов в дифференциаторе разнородны).