View Full Version : Random hex number of given length in QT?

11th August 2012, 18:35
Hi, I wonder if there is a way using plain QT to obtain a random hexadecimal number of any length. I found that it is possible to get 32 characters hex numbers with QUuid::createUuid() (removing {,},-), but what about for others lengths? I'm missing some qt feature or I have to use simple c++ routines?


12th August 2012, 08:11
For simple definitions of "random" you can use qsrand() and then qrand() to get 32, or fewer, bits at a time until you get sufficient bits. If you really want a hexadecimal string then stuff the bytes into a QByteArray and call QByteArray::toHex().

For any cryptographic purpose you want a better source of randomness and a cryptographic PRNG.

BTW: A UUID is not entirely random.

12th August 2012, 09:05
Ok, I've followed qsrand()/qrand() way:

QTime time = QTime::currentTime();


QString Utils::getRandomHex(const int &length)
QString randomHex;

for(int i = 0; i < length; i++) {
int n = qrand() % 16;

return randomHex;