'.$str.'
' ;
echo decode_str($str);
/**
* 1. Get ASCII of each char add an random salt and again add with an random multple (1x to 9x) of 1000 to keep each unit 4 char length.
* 2. Convert 0, 1, 2, 3, 4, 5 in obtained string to alphabet
* @param string $str
* @return type
*
*/
function encode_str($str) {
$encoded = '';
$alpha_map = ['P', 'M', 'S', 'K'];
$str = ''.$str;
$len = strlen($str);
$ascii_arr = [];
$salt = 150;//rand(100, (999 - 255));
for ($x = 0; $x < $len; $x++) {
$ascii_arr[$x] = (rand(1, 9) * 1000) + ($salt + ord($str[$x]));
}
$enc = implode('', $ascii_arr) . $salt;
$enc_len = strlen($enc);
for ($x = 0; $x < $enc_len; $x++) {
if (array_key_exists($enc[$x], $alpha_map)) {
$encoded .= $alpha_map[$enc[$x]];
} else {
$encoded .= $enc[$x];
}
}
return strtolower($encoded);
}
function decode_str($str) {
$str = strtoupper($str);
$unit_size = 4;
$alphatonum = function($s) {
$alpha_map = ['P', 'M', 'S', 'K'];
$l = strlen($s);
$s_ = '';
for ($x = 0; $x < $l; $x++) {
$pos = array_search($s[$x], $alpha_map);
$s_ .= in_array($s[$x], $alpha_map) ? array_search($s[$x], $alpha_map) : $s[$x];
}
return $s_;
};
$decoded = '';
$salt = $alphatonum(substr($str, -3));
$data = $alphatonum(substr($str, 0, strlen($str) - 3));
$loop = strlen($data) / $unit_size;
$unit_arr = [];
for ($x = 0; $x < $loop; $x++) {
$unit = substr($data, $x * $unit_size, $unit_size);
$ascii_ = ($unit % 1000) - $salt;
$decoded .= chr($ascii_);
}
return $decoded;
}
?>