Security › Derandom
thumb_up Follow me on GitHub to get notifications about my projects (like Fossdroid Core), thanks! close


Pseudo random number predictor
Version: 2.4
Added: 12-01-2015
Updated: 19-10-2020
Predicts pseudo random numbers based on a sequence of observed numbers.

Enter a sequence of numbers that you obtained from a pseudo random number generator like, for instance, the Java standard pseudo random number generator or the Mersenne Twister MT19937. The app will then try to predict following numbers from the generator.

The app expects all numbers to be entered as integers or floating point numbers between zero and one. Currently, floating point numbers are supported for the Mersenne Twister only. Three input modes are supported:
1. Text field lets you enter the numbers directly on the device.
2. File lets you choose a file with newline separated number strings.
3. Socket opens a server socket on the device. You can then connect with a custom client by means of a client socket and send newline separated number strings to the server. After each number the server will send back the next newline separated predictions. Each block of predictions is separated by an additional newline.

To test the app, enter the following numbers in the Text field:


These numbers were sampled from the Java linear congruential generator Random.nextInt(). Thus, the app should detect LCG: Java after the third number input, and numbers in the prediction history should appear in green instead of red, indicating that those numbers were correctly predicted.

The source code of this app is published on GitLab. There you can also find a Python program for testing socket input:

Screenshot of Derandom Screenshot of Derandom Screenshot of Derandom
code Source file_download Download