elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:21  


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Otra perspectiva para correr el algoritmo de Julio Cesar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Otra perspectiva para correr el algoritmo de Julio Cesar  (Leído 1,728 veces)
Sadam.sh
Wiki

Desconectado Desconectado

Mensajes: 15


#!/bin/bash


Ver Perfil WWW
Otra perspectiva para correr el algoritmo de Julio Cesar
« en: 30 Octubre 2010, 20:58 »

Julio Cesar enviaba mensajes a sus legiones cifrando los mensajes mediante el
siguiente algoritmo:
Se escogía un número n como clave y se sumaba a cada letra en el alfabeto n
posiciones. Así, si la clave escogida fuese 5, la ‘a’ pasaría a ser la ‘f’, mientras que
la ‘f’ pasaría a ser la ‘k’. Para las últimas letras del abecedario se seguiría desde el
principio. Así, con la clave de 5 la ‘y’ pasaría a ser la ‘d’

Otra perspectiva para el algoritmo de Julio Cesar para PHP
Código
[code]<?php
//Recuerda que aquí no dejo el formulario HTML
$mensaje=$_POST['mensaje'];
$n=$_POST['n'];
$julio=array(
       a=>"0",
       b=>"1",
       c=>"2",
d=>"3",
       e=>"4",
       f=>"5",
   g=>"6",
       h=>"7",
       i=>"8",
j=>"9",
       k=>"10",
       l=>"11",
m=>"12",
       n=>"13",
       ñ=>"14",
   o=>"15",
       p=>"16",
       q=>"17",
   r=>"18",
   s=>"19",
       t=>"20",
       u=>"21",
v=>"22",
w=>"23",
x=>"25",
   y=>"25",
z=>"26");
$cesar=array(
       0=>"a",
       1=>"b",
       2=>"c",
3=>"d",
       4=>"e",
       5=>"f",
   6=>"g",
       6=>"h",
       7=>"i",
9=>"j",
       10=>"k",
       11=>"l",
12=>"m",
       13=>"n",
       14=>"ñ",
   15=>"o",
       16=>"p",
       17=>"q",
   18=>"r",
   19=>"s",
       20=>"t",
       21=>"u",
22=>"v",
23=>"w",
24=>"x",
   25=>"y",
26=>"z");
echo "Mensaje original: ".$mensaje."<br>";
echo "Mensaje codificado: <br>";
for($i=0;$i<strlen($mensaje);$i++)
{
 $cifrado=(($julio[$mensaje[$i]] + $n))%27;
 echo $cesar[$cifrado];
 }
 
 
?>
[/code]


« Última modificación: 31 Octubre 2010, 05:53 por Sadam.sh » En línea

Last resort.
El As del Club Paris


Desconectado Desconectado

Mensajes: 1.816


Ver Perfil WWW
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #1 en: 31 Octubre 2010, 02:04 »

Podes reemplazar:

Código
$cesar=array( 
       0=>"a",
       1=>"b",
       2=>"c",
     3=>"d",
       4=>"e",
       5=>"f",
      6=>"g",
       6=>"h",
       7=>"i",
     9=>"j",
       10=>"k",
       11=>"l",
     12=>"m",
       13=>"n",
       14=>"ñ",
      15=>"o",
       16=>"p",
       17=>"q",
      18=>"r",
      19=>"s",
       20=>"t",
       21=>"u",
     22=>"v",
     23=>"w",
     24=>"x",
      25=>"y",
     26=>"z");
   

por

Código
$cesar = array_flip($julio);

Esta buena la implementacion

Saludos


En línea

sudo suck --mycock -o force
Sadam.sh
Wiki

Desconectado Desconectado

Mensajes: 15


#!/bin/bash


Ver Perfil WWW
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #2 en: 31 Octubre 2010, 02:59 »

Gracias, no me di cuenta. Así queda mucho mejor. Saludos
En línea

Last resort.
.:WindHack:.

Desconectado Desconectado

Mensajes: 162


Prisionero de mi propia mente...


Ver Perfil WWW
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #3 en: 31 Octubre 2010, 04:01 »

Por favor, usa las etiquetas BBCode para resaltado de sintaxis. [code=php][/code]
En línea



Shell Root


Desconectado Desconectado

Mensajes: 2.456


Alex Jurado


Ver Perfil WWW
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #4 en: 31 Octubre 2010, 15:39 »

Pwned, cuando se ingresa una mayúscula. XD
Código:
Mensaje original: Shell
Mensaje codificado: PHP Notice:  Undefined index: S in /home/alex/Escritorio/PoC.php on line 65
elPHP Notice:  Undefined offset: 8 in /home/alex/Escritorio/PoC.php on line 66

Otra opción podría ser,
Código
	# @Algoritmo Julio Cesar
# @Shell Root

$sMsg = 'Shell Root';
$sMsg = strtolower($sMsg);
$sNumber = 28;
$sEncryption = 'abcdefghijklmn&#241;opqrstuvwxyz';
 
echo "Cadena Original: ".$sMsg."\n";
echo "Cadena Cifrada: ";
for($i=0;$i<strlen($sMsg);$i++){
if($sMsg[$i] == ' '){ echo " "; }
for($j=0;$j<strlen($sEncryption);$j++){
if($sMsg[$i] == $sEncryption[$j]){
echo $sEncryption[$j + $sNumber % 27];
}
}
}
 
echo "\n";

Resultado,
Código
alex@shellroot:~/Escritorio$ php PoC.php
Cadena Original: shell root
Cadena Cifrada: tifmm sppu
« Última modificación: 31 Octubre 2010, 16:41 por Shell Root » En línea

---
Sadam.sh
Wiki

Desconectado Desconectado

Mensajes: 15


#!/bin/bash


Ver Perfil WWW
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #5 en: 31 Octubre 2010, 17:58 »

Si, tampoco cifra caracteres especiales. Esa sería la opción para agregarle más funcionalidades al código. Lo de las mayúsculas y minúsculas, es relativo. Podes darle un valor de asignación diferentes a las mayúsculas o simplemente usar la función

Código
strtolower () 

y convertir todo tu mensaje a minúscula. En la consigna original, el problema trata solo caracteres del alfabeto, pero estaría bueno agregar lo de los caracteres especiales. Saludos.
En línea

Last resort.
KrossPock

Desconectado Desconectado

Mensajes: 208



Ver Perfil
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #6 en: 31 Octubre 2010, 18:12 »

otra forma mas facil....

Código
<?php
$x= "a";
$x++;
echo $x;
?>

boludeando descubri eso e hice esta funcion...

Código
<?php
function cesar($cadena,$desplazamiento){
if(!is_numeric($desplazamiento)){
  return FALSE;
}
$cifrado='';
$i=0;
while(strlen($cadena)>$i){
$x=0;
$a=substr($cadena,$i,1);
while($desplazamiento>$x){
 $a++;
 $x++;
}
$cifrado.=$a;
$i++;
}
return $cifrado;
}
?>
 
el unico problema es que haciendo $x++ funciona, pero $x-- no, asi que cifra, pero no decifra xD.

De esta forma cifra mayusculas, minuscula, numeros y a los caracteres especiales me parece los deja como esta
« Última modificación: 31 Octubre 2010, 18:14 por KrossPock » En línea


El As del Club Paris


Desconectado Desconectado

Mensajes: 1.816


Ver Perfil WWW
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #7 en: 31 Octubre 2010, 18:16 »

Otro problema sería la ñ, que al ser PHP americano no etá en el mismo rango ASCII que las demas letras.

Saludos
En línea

sudo suck --mycock -o force
KrossPock

Desconectado Desconectado

Mensajes: 208



Ver Perfil
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #8 en: 31 Octubre 2010, 18:20 »

si... la ñ seria otro problema... solo les mostre que hay otra forma de hacerlo, sin el array, que queda poco dinamico (? :P
En línea


Sadam.sh
Wiki

Desconectado Desconectado

Mensajes: 15


#!/bin/bash


Ver Perfil WWW
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #9 en: 31 Octubre 2010, 18:27 »

si... la ñ seria otro problema... solo les mostre que hay otra forma de hacerlo, sin el array, que queda poco dinamico (? :P

Hay cosas que requieren cierta dinamicidad y hay cosas que no, como por ejemplo un alfabeto. En 500 o 1000 años es muy poco probable que agregue o quite 1 carácter. Tambien podes hacer uso de las correspondencias ASCII, si no te parece conveniente usar un arreglo.
En línea

Last resort.
.:WindHack:.

Desconectado Desconectado

Mensajes: 162


Prisionero de mi propia mente...


Ver Perfil WWW
Re: Otra perspectiva para correr el algoritmo de Julio Cesar
« Respuesta #10 en: 31 Octubre 2010, 19:46 »

También se podría hacer de la siguiente manera:

 
Código
       <?php
       # Cifrado Cesar
       # .:WindHack:.

       $Msg = "Hola Mundo";
       $Key = 3;
       $Temp = "";
 
       for ($i=0;$i<strlen($Msg);$i++)
            $Temp .= chr(ord($Msg[$i])+$Key);
 
       $Temp = str_replace("#"," ",$Temp);
 
       echo "Cadena Cifrada: $Temp";
       echo "Cadena Original: $Msg";
       ?>

Código:
Cadena Cifrada: Krod Pxqgr
Cadena Original: Hola Mundo
En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Antigua noticia cambia de perspectiva
Foro Libre
Di~OsK 1 271 Último mensaje 27 Junio 2011, 10:07
por Gambinoh
Otra perspectiva al tema de megaupload
Foro Libre
vertexSymphony 2 305 Último mensaje 5 Febrero 2012, 23:50
por BlackZeroX (Astaroth)
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines