Browse code

random_string() verwendet und vereinfacht

Bernd Wurst authored on10/02/2017 12:29:36
Showing2 changed files
... ...
@@ -186,11 +186,12 @@ 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;
193
- }
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);
194
+}
194 195
 
195 196
 
196 197
 function are_you_sure($query_string, $question)
... ...
@@ -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;