我想建立一個PRNG字節,我可以採取一組字節(比如10或15字節),並返回一個種子列表產生該字節列表。我不關心密碼學,但它必須大致均勻分佈,它必須達到所有可能的2^8組合,並且它必須偶爾能夠重複數字而不會卡住。試圖寫一個可翻轉的PRNG的8位,而不是一個密碼
問題是,我讀過的大多數算法都使用密碼,這可能意味着它不會允許重複,或者他們使用模數或非循環移位來誘導丟失,並且使得函數在最佳情況下不切實際。另外,如果算法使用計數,那麼將很難反向工作,因爲字節列表輸入不知道內部PRNG的計數器在生成時是什麼。
我意識到我在尋找的是一個有你的蛋糕和吃它太局面,但我想確保沒有另一個我失蹤的解決方案。
雖然搜索我遇到了this post它有類似的要求。我用C#編寫,但實際上,語法並不重要。
我試圖自己編寫的每種算法都是密碼,因此無法在分發中重複和/或不統一。我使用了反轉,循環移位和種子遮蔽。
您引用的帖子似乎回答您的問題。 – 2012-01-11 02:19:04
該線程的答案使用密碼,除非我錯過了某些東西,否則不會允許重複輸出而不被卡住。 – digdig 2012-01-11 15:58:51