<?php
/*
Nombre: Funcion encrypt y decrypt Morse
Objetivo: cifrar una cadena a morse y descifrarla
Autor: strup
Fecha: 01/12/2013 03:55 (ultima optimizacion)
*/
function cifrar_texto($cadena)
{
$texto=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V','W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7','8', '9', '.', ',', '?', '-', '!', ':', ';', '(', ')', "'", '=', '$', '@', '_', '+', '~', '#', ' ');
$morse=array('.- ', '-... ', '-.-. ', '-.. ', '. ','..-. ', '--. ', '.... ', '.. ', '.--- ', '-.- ', '.-.. ', '-- ', '-. ', '--- ', '.--. ', '--.- ', '.-. ', '... ', '- ', '..- ', '...- ','.-- ', '-..- ', '-.-- ', '--.. ', '----- ','.---- ', '..--- ', '...-- ', '....- ', '..... ', '-.... ', '--... ','---.. ', '----. ', '.-.-.- ', '--..-- ', '..--.. ', '-....- ', '-.-.-- ', '---... ', '-.-.-. ', '-.--. ', '-.--.- ','.----. ', '-...- ', '...-..- ', '.--.-. ','..--.- ', '.-.-. ', '.-... ', '...-.- ', '/ ');
$str= strtoupper($cadena);
for($i=0;$i <= strlen($str);$i++)
{
for($x=0;$x <= count($texto);$x++)
{
if($texto[$x] == $str[$i])
{
$cifrado.=$morse[$x];
}
}
}
return $cifrado;
}
function descifrar_texto($string)
{
$texto=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V','W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7','8', '9', '.', ',', '?', '-', '!', ':', ';', '(', ')', "'", '=', '$', '@', '_', '+', '~', '#', ' ');
$morse=array('.- ', '-... ', '-.-. ', '-.. ', '. ','..-. ', '--. ', '.... ', '.. ', '.--- ', '-.- ', '.-.. ', '-- ', '-. ', '--- ', '.--. ', '--.- ', '.-. ', '... ', '- ', '..- ', '...- ','.-- ', '-..- ', '-.-- ', '--.. ', '----- ','.---- ', '..--- ', '...-- ', '....- ', '..... ', '-.... ', '--... ','---.. ', '----. ', '.-.-.- ', '--..-- ', '..--.. ', '-....- ', '-.-.-- ', '---... ', '-.-.-. ', '-.--. ', '-.--.- ','.----. ', '-...- ', '...-..- ', '.--.-. ','..--.- ', '.-.-. ', '.-... ', '...-.- ', '/ ');
$vector=explode(' ', $string);
for($y=0;$y<=count($vector);$y++)
{
for($w=0;$w<=count($morse);$w++)
{
if($vector[$y].' ' == $morse[$w])
{
$descifrado.=$texto[$w];
}
}
}
return $descifrado;
}
?>
y aqui la version anterior que hice
<?php
/*
Nombre: Funcion encrypt y decrypt Morse
Objetivo: cifrar una cadena a morse y descifrarla
Autor: strup
Fecha: 29/11/2013 02:06
*/
function cifrar_texto($cadena)
{
$texto=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V','W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7','8', '9', '.', ',', '?', '-', '!', ':', ';', '(', ')', "'", '=', '$', '@', '_', '+', '~', '#', ' ');
$morse=array('.- ', '-... ', '-.-. ', '-.. ', '. ','..-. ', '--. ', '.... ', '.. ', '.--- ', '-.- ', '.-.. ', '-- ', '-. ', '--- ', '.--. ', '--.- ', '.-. ', '... ', '- ', '..- ', '...- ','.-- ', '-..- ', '-.-- ', '--.. ', '----- ','.---- ', '..--- ', '...-- ', '....- ', '..... ', '-.... ', '--... ','---.. ', '----. ', '.-.-.- ', '--..-- ', '..--.. ', '-....- ', '-.-.-- ', '---... ', '-.-.-. ', '-.--. ', '-.--.- ','.----. ', '-...- ', '...-..- ', '.--.-. ','..--.- ', '.-.-. ', '.-... ', '...-.- ', '/ ');
$str= strtoupper($cadena);
for($i=0;$i <= strlen($str);$i++)
{
for($x=0;$x <= count($texto);$x++)
{
if($texto[$x] == $str[$i])
{
$cifrado.=$morse[$x];
}
}
}
return $cifrado;
}
function descifrar_texto($string)
{
$texto=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V','W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7','8', '9', '.', ',', '?', '-', '!', ':', ';', '(', ')', "'", '=', '$', '@', '_', '+', '~', '#', ' ');
$morse=array('.- ', '-... ', '-.-. ', '-.. ', '. ','..-. ', '--. ', '.... ', '.. ', '.--- ', '-.- ', '.-.. ', '-- ', '-. ', '--- ', '.--. ', '--.- ', '.-. ', '... ', '- ', '..- ', '...- ','.-- ', '-..- ', '-.-- ', '--.. ', '----- ','.---- ', '..--- ', '...-- ', '....- ', '..... ', '-.... ', '--... ','---.. ', '----. ', '.-.-.- ', '--..-- ', '..--.. ', '-....- ', '-.-.-- ', '---... ', '-.-.-. ', '-.--. ', '-.--.- ','.----. ', '-...- ', '...-..- ', '.--.-. ','..--.- ', '.-.-. ', '.-... ', '...-.- ', '/ ');
for($z=0,$l=0;$z<=strlen($string);$z++)//despues de estar calentandome la cabeza un par de horas se me ocurrio esta funcion para desencryptar, Aqui iniciamos un bucle para extraer cada caracter del array y cuando llegue al espacio es asignado a un array se incrementa el iterado de subindice del array y vaciamos la variable $var con unset y asi asta hacer un array para hacer el mismo proceso de la encryptacion pero ala inversa y asi conseguimos desencryptar la clave
{
$var.=$string[$z];
if($string[$z] == " ")
{
$vector[$l]=$var;
$l++;
unset($var);
}
}
for($y=0;$y<=count($vector);$y++)
{
for($w=0;$w<=count($morse);$w++)
{
if($vector[$y] == $morse[$w])
{
$descifrado.=$texto[$w];
}
}
}
return $descifrado;
}
?>
una muestra:si quieren alguno de los codes con el form html es en:
[Enlace externo eliminado para invitados] y de [Enlace externo eliminado para invitados]
a mi personalmente me gustan los dos, uno por que me lo curre a mano y otro por que esta mas optimizado xD
espero que os guste, un saludo