title: What makes openssl_random_pseudo_bytes "cryptographically secure"?
body: <p>I've always been told that I should use <code>openssl_random_pseudo_bytes</code> when giving passwords a salt.</p>
  
  <p>But what I would really love to know, is what makes it cryptographically secure. What is the internal difference between <a href="http://php.net/manual/en/function.rand.php" rel="noreferrer"><code>rand</code></a>, <a href="http://php.net/manual/en/function.mt-rand.php" rel="noreferrer"><code>mt_rand</code></a> and <a href="http://php.net/manual/en/function.openssl-random-pseudo-bytes.php" rel="noreferrer"><code>openssl_random_pseudo_bytes</code></a>?</p>
  
  <p>Thanks in advance.</p>