Thằng bạn nhờ em nghĩ một cái thuật toán để mã hóa dữ liệu mà không ai decode được e bảo nó dùng hash nó không chịu thế rồi e viết ra cái này
function _encode($str)
{
$str_en = '';
$validChar = array('q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p',
'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm',
'1', '2' ,'3', '4', '5', '6', '7', '8', '9', '0');
for ($ch = 0; $ch < strlen($str); $ch++)
{
$char = $str[$ch];
$value = unpack('H*', $char);
$piece = substr(base_convert($value[1], 16, 2), 4);
$encoded = '';
for ($i = 0; $i < 2; $i++)
{
for ($j = 0; $j < 2; $j++)
{
for ($k = 0; $k < 2; $k++)
{
for ($l = 0; $l < 2; $l++)
{
$en = pack('H*', base_convert($i.$j.$k.$l.$piece, 2, 16));
if (empty(array_search($en, $validChar)))
{
continue;
}
else if ($en == $char)
{
continue;
}
else
{
$encoded .= $en;
}
}
}
}
}
$str_en .= $encoded;
}
return $str_en;
}
và kết quả
Cách này là e lấy 3 kí tự của một kí tự input rồi hoán vị các kí tự 0
và 1
ở 4 vị trí đầu rồi rồi kiểm tra nếu nó không phải là kí tự lạ thì cho vào. Nhưng nó nói với e là vậy vẫn còn rất dài. Nên e mong các anh chị có kinh nghiệm cho e cái gợi ý nào đó.
E cám ơn ạ.