diff options
author | Fabien Potencier <fabien.potencier@gmail.com> | 2012-07-05 12:19:25 +0200 |
---|---|---|
committer | Fabien Potencier <fabien.potencier@gmail.com> | 2012-10-28 08:03:00 +0100 |
commit | 255196983ec0c1dc944057816fbba25b9ff8276c (patch) | |
tree | 9abc7b351b5a5dc0adcbde72f6ad645a652e04f1 /Core/Util/String.php | |
parent | e3d359180c41a80803e06a5d277b3b319952c8ee (diff) | |
download | symfony-security-255196983ec0c1dc944057816fbba25b9ff8276c.zip symfony-security-255196983ec0c1dc944057816fbba25b9ff8276c.tar.gz symfony-security-255196983ec0c1dc944057816fbba25b9ff8276c.tar.bz2 |
moved the secure random class from JMSSecurityExtraBundle to Symfony (closes #3595)
Diffstat (limited to 'Core/Util/String.php')
-rw-r--r-- | Core/Util/String.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Core/Util/String.php b/Core/Util/String.php new file mode 100644 index 0000000..096878b --- /dev/null +++ b/Core/Util/String.php @@ -0,0 +1,48 @@ +<?php + +/* + * This file is part of the Symfony package. + * + * (c) Fabien Potencier <fabien@symfony.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Security\Core\Util; + +/** + * String utility functions. + * + * @author Fabien Potencier <fabien@symfony.com> + */ +final class String +{ + private final function __construct() + { + } + + /** + * Compares two strings. + * + * This method implements a constant-time algorithm to compare strings. + * + * @param string $str1 The first string + * @param string $str2 The second string + * + * @return Boolean true if the two strings are the same, false otherwise + */ + public static function equals($str1, $str2) + { + if (strlen($str1) !== $c = strlen($str2)) { + return false; + } + + $result = 0; + for ($i = 0; $i < $c; $i++) { + $result |= ord($str1[$i]) ^ ord($str2[$i]); + } + + return 0 === $result; + } +} |