use more complex nonce that includes 16 bytes from random() + time()