Boa noite,
Tenho um amigo que recentemente começou a aceitar pedidos de sua loja também pela internet, através de uma loja virtual. Aproveitamos para desenvolver um sistema para ele controlar o estoque e finanças da empresa; Para garantir que somente ele pudesse acessar estas informações, decidi implementar um embaralhador de caracteres, que compartilho com vocês neste momento:
Código:
Código PHP:
function Astherion($content, $method, $password) { $string .= 'aAáÁàÀãÃâÂäÄbBcCçÇdDeEéÉèÈêÊëËfFgGhHiIíÍìÌîÎïÏjJk'; $string .= 'KlLmMnNñÑoOóÓòÒõÕôÔöÖpPqQrRsStTuUúÚùÙûÛüÜvVyYxXzZwW'; $string .= '0123456789 `~!?@#$%^&*()_-=+\/[]<>{},.:;|¹²³ªº"' . "'\t\r\n"; $array = str_split(utf8_decode($string), 1); foreach($array as $key => $value) { $temp[] = substr(hash("Whirlpool", $password . $value), 1, 5); } if($method == 1) { for($x = 0; $x < strlen($content); $x++) { Slide($temp, 1); foreach($array as $key => $value) { if($content[$x] == $array[$key]) { $result .= $temp[$key]; } } } return $result; } if($method == 0) { for($x = 4; $x < strlen($content); $x = $x+5) { Slide($temp, 1); $char = $content[$x-4].$content[$x-3].$content[$x-2].$content[$x-1].$content[$x]; foreach($temp as $key => $value) { if($char == $value) { $result .= $array[$key]; } } unset($char); } return $result; }}
function Slide(&$array, $walk) { if(false === is_int($walk) || 0 === $walk || false === is_array($array)) return false; $walk = -($walk % sizeof($array)); $array = array_merge(array_slice($array, $walk), array_slice($array, 0, $walk)); return true;}
Exemplo de Cifragem:
44d7fd8d8c7fc9bf55a9a7570283f794837f55a98501576ac4 94837faf4d1bd0e422e9c4747633d1141e438b17018e93cfd9 a2a31f7cf0a4daba58c8 (Se desejar, tente quebrar).
Sugestões e Críticas serão muito bem apreciados. Se alguém testar, por favor, compartilhe sua experiência conosco.