From 3994b3a26c252cba4070337b036e3a1c12c81369 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Sat, 23 May 2015 03:42:11 -0400 Subject: [PATCH] Installer: Use openssl_random_pseudo_bytes() (if available) to generate des_key (#1490402) --- program/lib/Roundcube/rcube_utils.php | 30 ++++++++++++++++++++++++++++++ 1 files changed, 30 insertions(+), 0 deletions(-) diff --git a/program/lib/Roundcube/rcube_utils.php b/program/lib/Roundcube/rcube_utils.php index 0ca2a9e..4db57b4 100644 --- a/program/lib/Roundcube/rcube_utils.php +++ b/program/lib/Roundcube/rcube_utils.php @@ -1138,4 +1138,34 @@ return $url; } + + /** + * Generate a ramdom string + * + * @param int String length + * + * @return string The generated random string + */ + public static function random_bytes($length) + { + if (function_exists('openssl_random_pseudo_bytes')) { + $random = openssl_random_pseudo_bytes(ceil($length / 2)); + $random = bin2hex($random); + + // if the length wasn't even... + if ($length < strlen($random)) { + $random = substr($random, 0, $length); + } + } + else { + $alpha = 'ABCDEFGHIJKLMNOPQERSTUVXYZabcdefghijklmnopqrtsuvwxyz0123456789+*%&?!$-_='; + $random = ''; + + for ($i = 0; $i < $length; $i++) { + $random .= $alpha[rand(0, strlen($alpha)-1)]; + } + } + + return $random; + } } -- Gitblit v1.9.1