'.$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; } ?>