|
24 | 24 |
|
25 | 25 | namespace Shopware\Components\Password\Encoder; |
26 | 26 |
|
| 27 | +use Shopware\Components\Random; |
| 28 | + |
27 | 29 | /** |
28 | 30 | * Provides a salted + streched sha256 |
29 | 31 | * |
@@ -121,53 +123,11 @@ public function isReencodeNeeded($hash) |
121 | 123 | } |
122 | 124 |
|
123 | 125 | /** |
124 | | - * Generate a salt using the best number generator available |
| 126 | + * Generate a salt using the number generator |
125 | 127 | * @return string |
126 | 128 | */ |
127 | 129 | public function getSalt() |
128 | 130 | { |
129 | | - // todo@all replace with \Shopware\Componenents\Random::getBytes() |
130 | | - $required_salt_len = $this->options['salt_len']; |
131 | | - |
132 | | - $buffer = ''; |
133 | | - $raw_length = (int) ($required_salt_len * 3 / 4 + 1); |
134 | | - $buffer_valid = false; |
135 | | - if (function_exists('mcrypt_create_iv') && !defined('PHALANGER')) { |
136 | | - $buffer = mcrypt_create_iv($raw_length, MCRYPT_DEV_URANDOM); |
137 | | - if ($buffer) { |
138 | | - $buffer_valid = true; |
139 | | - } |
140 | | - } |
141 | | - if (!$buffer_valid && function_exists('openssl_random_pseudo_bytes')) { |
142 | | - $buffer = openssl_random_pseudo_bytes($raw_length); |
143 | | - if ($buffer) { |
144 | | - $buffer_valid = true; |
145 | | - } |
146 | | - } |
147 | | - if (!$buffer_valid && is_readable('/dev/urandom')) { |
148 | | - $f = fopen('/dev/urandom', 'r'); |
149 | | - $read = strlen($buffer); |
150 | | - while ($read < $raw_length) { |
151 | | - $buffer .= fread($f, $raw_length - $read); |
152 | | - $read = strlen($buffer); |
153 | | - } |
154 | | - fclose($f); |
155 | | - if ($read >= $raw_length) { |
156 | | - $buffer_valid = true; |
157 | | - } |
158 | | - } |
159 | | - if (!$buffer_valid || strlen($buffer) < $raw_length) { |
160 | | - $bl = strlen($buffer); |
161 | | - for ($i = 0; $i < $raw_length; $i++) { |
162 | | - if ($i < $bl) { |
163 | | - $buffer[$i] = $buffer[$i] ^ chr(mt_rand(0, 255)); |
164 | | - } else { |
165 | | - $buffer .= chr(mt_rand(0, 255)); |
166 | | - } |
167 | | - } |
168 | | - } |
169 | | - $salt = str_replace('+', '.', base64_encode($buffer)); |
170 | | - |
171 | | - return substr($salt, 0, $required_salt_len); |
| 131 | + return Random::getAlphanumericString($this->options['salt_len']); |
172 | 132 | } |
173 | 133 | } |
0 commit comments