public function testCompareStrings() { $random_string = \SecureFuncs\SecureFuncs::randomString(12); $this->assertTrue(\SecureFuncs\SecureFuncs::compareStrings($random_string, $random_string)); }
/** * Leave param2 empty if you want to generate the qrcode yourself using the returned data * @param bool $returnimage * @return array * @throws \Endroid\QrCode\Exceptions\ImageFunctionUnknownException */ public function createQrCode($returnimage = false) { // delete old qr codes $this->newBuilder()->delete('qr_activation')->where('ip = :ip')->setParameter('ip', filter_input(INPUT_SERVER, 'REMOTE_ADDR'))->execute(); // Random code $new_code = \SecureFuncs\SecureFuncs::randomString(64); // insert qr code into the database $this->newBuilder()->insert('qr_activation')->values(array('ip' => ':ip', 'qr_code' => ':qr', 'expires' => ':expires'))->setParameter(':qr', $new_code)->setParameter(':ip', filter_input(INPUT_SERVER, 'REMOTE_ADDR'))->setParameter(':expires', date('Y-m-d H:i:s', strtotime('+30seconds')))->execute(); if ($returnimage === true && !headers_sent()) { header('Content-type: image/png'); $link = ADVANCEDLOGINSCRIPT_QR_PAGE; $link = str_replace('{code}', $new_code, $link); $qr_image = new \Endroid\QrCode\QrCode(); $qr_image->setText($link)->setSize(300)->setPadding(20)->setErrorCorrection('high')->setForegroundColor(array('r' => 0, 'g' => 0, 'b' => 0, 'a' => 0))->setBackgroundColor(array('r' => 255, 'g' => 255, 'b' => 255, 'a' => 0))->setLabel('Valid for 30 seconds')->setLabelFontSize(16)->render(); } else { $qr_image = false; } $_SESSION[ADVANCEDLOGINSCRIPT_QR_COOKIEKEY]['qr'] = $new_code; $this->destroyOldQrCodes(); return array('qr' => $new_code, 'qr_image' => $qr_image); }