private static function type_default($key, $encData) { // Can only send the first 32 characters of the key $key = Security_Hash::value($key, 32, 64); // Get the initialization vector (appends a public salt) $vectorSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $vector = mcrypt_create_iv($vectorSize, MCRYPT_RAND); // Encrypt the data $encData = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $encData, MCRYPT_MODE_CBC, $vector); return "|" . base64_encode($vector . $encData); }
public static function type_default($key, $encryptedData) { // Only the first 32 characters of the key were sent, and done so with the Security_Hash::value method $key = Security_Hash::value($key, 32, 64); // Begin decryption $encryptedData = base64_decode($encryptedData); $vectorSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); $vector = substr($encryptedData, 0, $vectorSize); $encryptedData = substr($encryptedData, $vectorSize); $decryptedData = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encryptedData, MCRYPT_MODE_CBC, $vector); // mcrypt pads the return string with nulls, so we need to trim the end return rtrim($decryptedData, ""); }
public static function delete($cookieName) { // Prepare Values $cookieName = Security_Hash::value($cookieName, 5, 62) . '-' . $cookieName; $timestamp = time(); // Remove Global Cookie Values if (isset($_COOKIE[$cookieName])) { unset($_COOKIE[$cookieName]); } if (isset($_COOKIE[$cookieName . "_key"])) { unset($_COOKIE[$cookieName . "_key"]); } // Cookie_Server vs. Cookie_Site differences $domain = get_called_class() == "Cookie_Server" ? BASE_DOMAIN : FULL_DOMAIN; // Remove desired Cookie and its associated key setcookie($cookieName, "", $timestamp - 360000, "/", URL_PREFIX . $domain); setcookie($cookieName . "_key", "", $timestamp - 360000, "/", URL_PREFIX . $domain); }
public static function submitted($uniqueIdentifier = "") { // Make sure all of the right data was sent if (isset($_POST['formguard_key']) && isset($_POST['formguard_salt']) && isset($_POST['tos_soimportant']) && isset($_POST['human_answer'])) { // Make sure the honeypots weren't tripped if ($_POST['tos_soimportant'] != "") { return false; } if ($_POST['human_answer'] != "") { return false; } // Get Important Data $keys = explode("-", $_POST['formguard_key'], 3); // Prepare identifier that will make forms unique to each user $uniqueIdentifier .= SITE_SALT; // Add User Agent $uniqueIdentifier .= isset($_SESSION['user_agent']) ? md5($_SESSION['user_agent']) : ""; // Add Auth Token $uniqueIdentifier .= isset($_SESSION[SITE_HANDLE]['auth_token']) ? $_SESSION[SITE_HANDLE]['auth_token'] : ""; // Add CSRF Token //$uniqueIdentifier .= (isset($_SESSION[SITE_HANDLE]['csrfToken']) ? $_SESSION[SITE_HANDLE]['csrfToken'] : ""); // Generate the Hash $hash = Security_Hash::value($uniqueIdentifier . $_POST['formguard_salt'] . $keys[0] . $keys[1], 82, 72); // Make sure the hash was valid if ($keys[2] == $hash) { // Prevent Most Accidental Resubmissions $mini = substr($hash, 0, 10); if (!isset($_SESSION[SITE_HANDLE]['trackForm'])) { $_SESSION[SITE_HANDLE]['trackForm'] = ''; } if (strpos($_SESSION[SITE_HANDLE]['trackForm'], "~" . $mini) !== false) { return false; } $_SESSION[SITE_HANDLE]['trackForm'] = "~" . $mini . substr($_SESSION[SITE_HANDLE]['trackForm'], 0, 110); // If the submission wasn't a resubmit, post it return true; } } return false; }
public static function getData($origClickVal) { // Make sure all of the right data was sent if (!isset($_GET['lslt']) or !isset($_GET['lhsh']) or !isset($_GET['lcv']) or !isset($_GET['ldata'])) { return array(); } /// Decode the prepared click value and confirm it matches if (!($clickVal = base64_decode($_GET['lcv'])) or $origClickVal != $clickVal) { return array(); } // Prepare identifier that will make forms unique to each user $siteSalt = SERVER_SALT; // Add User Agent $siteSalt .= isset($_SESSION['user_agent']) ? md5($_SESSION['user_agent']) : ""; // Add Auth Token $siteSalt .= isset($_SESSION[SITE_HANDLE]['auth_token']) ? $_SESSION[SITE_HANDLE]['auth_token'] : ""; // Add CSRF Token //$siteSalt .= (isset($_SESSION[SITE_HANDLE]['csrfToken']) ? $_SESSION[SITE_HANDLE]['csrfToken'] : ""); // Generate the Hash $hash = Security_Hash::value($siteSalt . $_GET['lslt'] . $clickVal, 15, 62); // Make sure the hash was valid if ($_GET['lhsh'] == $hash) { // Prevent Page Refreshes if (!isset($_SESSION[SITE_HANDLE]['trackLink'])) { $_SESSION[SITE_HANDLE]['trackLink'] = ''; } if (strpos($_SESSION[SITE_HANDLE]['trackLink'], "~" . $hash) !== false) { return array(); } $_SESSION[SITE_HANDLE]['trackLink'] = "~" . $hash . substr($_SESSION[SITE_HANDLE]['trackLink'], 0, 110); $someData = Security_Decrypt::run($hash, $_GET['ldata']); // If the submission wasn't a resubmit, post it return json_decode($someData, true); } return array(); }
private static function prepIndexHash($entityName, $entityID, $attribute) { return Security_Hash::value($entityName . $entityID . $attribute, 16); }