The next php function will provide you a fast and very simple two-way system to encrypt a string or decrypt an encrypted string, useful for situations that do not require increased security, ie things that do not attract the attention of hackers or government spy services :).
function simpleStrCrypt($text, $userkey, $decode=false) { $key = hash('sha256',$userkey,true); $key_length = strlen($key)-1; if ($decode) { $text = strtr($text, '-_', '+/'); $text = base64_decode($text, false); $crc32 = ord($text[strlen($text) -1]); $text_length = strlen($text)-1; } else { $crc32 = crc32($text.$userkey) % 256; $text_length = strlen($text); } $k=0; $code = ''; for ($i = 0; $i < $text_length; $i++) { $code .= chr( ord($text[$i]) ^ ord($key[$k]) ^ $crc32 ); if ($k < $key_length) $k++; else $k=0; } if ($decode === false) { $code .= chr($crc32); $code = base64_encode($code); if ($code === false) return false; $code = strtr($code, '+/', '-_'); } return rtrim($code, '='); }
* it can be used in GET / REQUEST parameters, which you want to not be easy to read, such as an external link or other data without major importance:
http://localhost/test/exturl.php?url=TFNYXVRJCAJbUlEMERFOSERNQk9fR0pKWRZVV0FVFQ==
example of use:
<a target="_blank" rel="nofollow" href="exturl.php?url=<?php echo simpleStrCrypt('https://www.facebook.com/byrev', __EXT_URL_KEY); ?>" class="external-link"><i class="fa-facebook"></i></a>
example for decryption
$location = (!empty($_GET['url'])) ? simpleStrCrypt($_GET['url'], __EXT_URL_KEY, true) : '#';
the encryption key must be defined somewhere in the script:
define('__EXT_URL_KEY', 'd%wHXDxy9jz^K!FG');
Very important note:
This function is not recommended for protecting sensitive data because it does not have advanced encryption techniques but the simplest possible ones.
* It may be a bit slower than using openssl, but the resulting text is much shorter, which is preferable when encrypting links and we don’t want the result to be longer than 2000 characters !
Be First to Comment