Skip to content

Instantly share code, notes, and snippets.

@drmcarvalho
Last active March 9, 2020 00:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save drmcarvalho/c73041ec26c8acf592608b8ad1faa35c to your computer and use it in GitHub Desktop.
Save drmcarvalho/c73041ec26c8acf592608b8ad1faa35c to your computer and use it in GitHub Desktop.
Criptografia de Cesar em PHP
<?php
function mod($n, $p) {
if ($n < 0) {
$n = $p - abs($n) % $p;
}
return $n % $p;
}
function troca($valor, $chave, $opcao) {
$alpha = "abcdefghijklmnopqrstuvwxyz";
if ($opcao == 'decrypt') {
$resuldado = '';
for ($i = 0; $i < strlen($valor); $i++) {
if (preg_match('/^[a-zA-Z]+$/', $valor[$i])) {
$resuldado .= $alpha[mod(stripos($alpha, $valor[$i]) + $chave, 26)];
}
else {
$resuldado .= $valor[$i];
}
}
return $resuldado;
}
elseif ($opcao == 'encrypt') {
$resuldado = '';
for ($i = 0; $i < strlen($valor); $i++) {
if (preg_match('/^[a-zA-Z]+$/', $valor[$i])) {
$resuldado .= $alpha[mod(stripos($alpha, $valor[$i]) - $chave, 26)];
}
else {
$resuldado .= $str[$i];
}
}
return $resuldado;
}
return false;
}
function encriptar($chave, $str) {
if ($chave <= 0)
return null;
if (!$str)
return null;
return troca($str, $chave, 'encrypt');
}
function desencriptar($chave, $str) {
if ($chave <= 0)
return null;
if (!$str)
return null;
return troca($str, $chave, 'decrypt');
}
$valor = 'mah';
$valorEncriptado = encriptar(8, $valor);
$valorDecriptado = desencriptar(8, $valorEncriptado);
echo "Valor original: " . $valor . "\n";
echo "Valor encriptado: " . $valorEncriptado . "\n";
echo "Valor decriptado: " . $valorDecriptado . "\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment