Update random ID method to use str_random and not random_bytes

The use of random_bytes in combination with bin2hex was producing a lot of duplicate keys when tested in batches of 10k (anywhere from 2 to 6). The use of str_random yielded no duplicates even at scales of 100k keys that were 8 characters.
This commit is contained in:
Dane Everitt 2017-09-13 23:07:02 -05:00
parent 0e518be6ca
commit a8c4d6afdb
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
14 changed files with 50 additions and 59 deletions

View file

@ -46,12 +46,9 @@ class UsernameGenerationServiceTest extends TestCase
$this->service = new UsernameGenerationService();
$this->getFunctionMock('\\Pterodactyl\\Services\\Servers', 'bin2hex')
->expects($this->any())->willReturn('dddddddd');
$this->getFunctionMock('\\Pterodactyl\\Services\\Servers', 'str_random')
->expects($this->any())->willReturnCallback(function ($count) {
return str_pad('', $count, 'a');
return str_pad('', $count, '0');
});
}
@ -62,7 +59,7 @@ class UsernameGenerationServiceTest extends TestCase
{
$response = $this->service->generate('testname');
$this->assertEquals('testna_dddddddd', $response);
$this->assertEquals('testna_00000000', $response);
}
/**
@ -82,7 +79,7 @@ class UsernameGenerationServiceTest extends TestCase
{
$response = $this->service->generate('testname', 'xyz');
$this->assertEquals('testna_xyzaaaaa', $response);
$this->assertEquals('testna_xyz00000', $response);
}
/**
@ -102,7 +99,7 @@ class UsernameGenerationServiceTest extends TestCase
{
$response = $this->service->generate('');
$this->assertEquals('aaaaaa_dddddddd', $response);
$this->assertEquals('000000_00000000', $response);
}
/**
@ -112,7 +109,7 @@ class UsernameGenerationServiceTest extends TestCase
{
$response = $this->service->generate('$%#*#(@#(#*$&#(#!#@');
$this->assertEquals('aaaaaa_dddddddd', $response);
$this->assertEquals('000000_00000000', $response);
}
/**