random_string() verwendet und vereinfacht
Bernd Wurst

Bernd Wurst commited on 2017-02-18 18:02:07
Zeige 2 geänderte Dateien mit 8 Einfügungen und 6 Löschungen.

... ...
@@ -186,10 +186,11 @@ function output($arg)
186 186
 }
187 187
 
188 188
 
189
-function random_string($nc, $a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789') {
190
-    $l=strlen($a)-1; $r='';
191
-    while($nc-->0) $r.=$a{mt_rand(0,$l)};
192
-    return $r;
189
+function random_string($num) 
190
+{
191
+    // Durch base64 wird der String länger, daher geben wir nur einen Substring zurück.
192
+    $data = base64_encode(random_bytes($num));
193
+    return substr($data, 0, $num);
193 194
 }
194 195
 
195 196
 
... ...
@@ -240,8 +241,9 @@ function generate_form_token($form_id)
240 241
     DEBUG("Uh? Session not running? Wtf?");
241 242
     system_failure("Internal error!");
242 243
   }
243
-  if (! isset($_SESSION['session_token']))
244
+  if (! isset($_SESSION['session_token'])) {
244 245
     $_SESSION['session_token'] = random_string(10);
246
+  }
245 247
   return hash('sha256', $sessid.$form_id.$_SESSION['session_token']);
246 248
 }
247 249
 
... ...
@@ -135,7 +135,7 @@ output('</table>');
135 135
 
136 136
 output('<p>Wir behalten uns vor, diese Rechnungsposten mit anderen sinngleichen Posten zusammen zu führen.</p>');
137 137
 
138
-$handle = bin2hex(random_bytes(10));
138
+$handle = random_string(10);
139 139
 
140 140
 $_SESSION['more_storage_handle'] = $handle;
141 141
 $_SESSION['more_storage_items'] = $items;
142 142