|
|
|
|
@ -40,14 +40,19 @@ use OCP\Security\ISecureRandom; |
|
|
|
|
*/ |
|
|
|
|
class SecureRandom implements ISecureRandom { |
|
|
|
|
/** |
|
|
|
|
* Generate a random string of specified length. |
|
|
|
|
* Generate a secure random string of specified length. |
|
|
|
|
* @param int $length The length of the generated string |
|
|
|
|
* @param string $characters An optional list of characters to use if no character list is |
|
|
|
|
* specified all valid base64 characters are used. |
|
|
|
|
* @return string |
|
|
|
|
* @throws \LengthException if an invalid length is requested |
|
|
|
|
*/ |
|
|
|
|
public function generate(int $length, |
|
|
|
|
string $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'): string { |
|
|
|
|
if ($length <= 0) { |
|
|
|
|
throw new \LengthException('Invalid length specified: ' . $length . ' must be bigger than 0'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$maxCharIndex = \strlen($characters) - 1; |
|
|
|
|
$randomString = ''; |
|
|
|
|
|
|
|
|
|
|