diff --git a/boot.php b/boot.php index d5adbd7cf1..3bdbe2db2a 100644 --- a/boot.php +++ b/boot.php @@ -610,12 +610,12 @@ function check_config(&$a) { }} -function get_guid() { - $exists = true; +function get_guid($size=16) { + $exists = true; // assume by default that we don't have a unique guid do { - $s = random_string(16); + $s = random_string($size); $r = q("select id from guid where guid = '%s' limit 1", dbesc($s)); - if(! results($r)) + if(! count($r)) $exists = false; } while($exists); q("insert into guid ( guid ) values ( '%s' ) ", dbesc($s)); diff --git a/include/text.php b/include/text.php index d53a2ceb9a..2973836023 100644 --- a/include/text.php +++ b/include/text.php @@ -19,11 +19,11 @@ function replace_macros($s,$r) { }} -// random hash, 64 chars +// random hex string, 64 chars max if(! function_exists('random_string')) { -function random_string() { - return(hash('sha256',uniqid(rand(),true))); +function random_string($size = 64) { + return(substr(hash('sha256',uniqid(rand(),true)),0,$size)); }} /** @@ -878,7 +878,7 @@ function return_bytes ($size_str) { } }} -function generate_guid() { +function generate_user_guid() { $found = true; do { $guid = substr(random_string(),0,16); diff --git a/mod/register.php b/mod/register.php index a8d81f1f6b..fbd21a567f 100644 --- a/mod/register.php +++ b/mod/register.php @@ -201,7 +201,7 @@ function register_post(&$a) { $r = q("INSERT INTO `user` ( `guid`, `username`, `password`, `email`, `openid`, `nickname`, `pubkey`, `prvkey`, `spubkey`, `sprvkey`, `register_date`, `verified`, `blocked` ) VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d )", - dbesc(generate_guid()), + dbesc(generate_user_guid()), dbesc($username), dbesc($new_password_encoded), dbesc($email),