I have a system where each user will submit a set of data. The data will be hashed and their hash will be submitted to the server. My plan is to combine each users hash (converted to bytes XOR'd with the root hash) to generate a final hash. This is done as a means to create entropy so that the final hash can be used to generate a "random" number. It is not possible to generate a pseudo / truly random number on the system, hence the work around.
Currently, I am doing the following on the server (pseudo code) :
//hexidecimal 54673257461630679457 (large prime)
var rootHash = 0x2F6BE6DFD71F8B9A1;
submitData(var userHash){
rootHash ^= userHash;
}
After all of the user hashes are XOR'd with the root hash, the root hash is converted into a number and then the last 10 digits of that number are used as the "random number."
Users are able to see eachother's hashes, however with a system like this, I figure even if they calculated the final number, submitting new data would change the root hash and thus change the final number generated.
I am not very experienced in this field so my question is, what are some of the cons of using a method like this, and is there a more efficient way to do this?