Soll ich urandom oder openssl_random_pseudo_bytes verwenden?

Ich entwickle eine Seite in PHP 5.4 und habe mich gefragt, welche ist besser, um ein zufälliges Salt für die Passwortsicherheit zu generieren?

$salt = sha1(openssl_random_pseudo_bytes(23));

oder

$seed = '';
$a = @fopen('/dev/urandom','rb');
$seed .= @fread($a,23);
$salt = sha1(seed);

oder soll ich einfach gehen mit:

$salt =  openssl_random_pseudo_bytes(40);

oder

$salt = '';
$a = @fopen('/dev/urandom','rb');
$salt .= @fread($a,23);

Antworten auf die Frage(2)

Ihre Antwort auf die Frage