我最近玩過Random
課,想到了「扭轉」種子過程。
例如:種子10000
生成此數據集:0x32 0xb3 0x84 0xf5 0x30
。獲取特定數據集的種子
Random random = new Random(10000);
byte[] storage = new byte[5];
random.NextBytes(storage);
我的問題是,是否有可能獲得一個給定數據集的種子。
是這樣的:var seed = GetSeed(new byte[] { 0x32, 0xb3, 0x84, 0xf5, 0x30 }); // returns 10000
我敢肯定,這是不可能的(在某種程度上就像是不可能恢復的散列以它的源文本),但也許我錯了。
如果你想逆向工程,這裏是Random.cs源代碼:http://referencesource.microsoft.com/#mscorlib/system/random.cs – Magnus
看看這個構造函數,你會注意到它不能逆轉:http://referencesource.microsoft.com/#mscorlib/system/random.cs,92e3cf6e56571d5a,references –
你必須嘗試每種可能的種子。 – jdweng