elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Otra perspectiva para correr el algoritmo de Julio Cesar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Otra perspectiva para correr el algoritmo de Julio Cesar  (Leído 5,960 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 pm »

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
  1. [code]<?php
  2. //Recuerda que aquí no dejo el formulario HTML
  3. $mensaje=$_POST['mensaje'];
  4. $n=$_POST['n'];
  5. $julio=array(
  6.        a=>"0",
  7.        b=>"1",
  8.        c=>"2",
  9. d=>"3",
  10.        e=>"4",
  11.        f=>"5",
  12.    g=>"6",
  13.        h=>"7",
  14.        i=>"8",
  15. j=>"9",
  16.        k=>"10",
  17.        l=>"11",
  18. m=>"12",
  19.        n=>"13",
  20.        ñ=>"14",
  21.    o=>"15",
  22.        p=>"16",
  23.        q=>"17",
  24.    r=>"18",
  25.    s=>"19",
  26.        t=>"20",
  27.        u=>"21",
  28. v=>"22",
  29. w=>"23",
  30. x=>"25",
  31.    y=>"25",
  32. z=>"26");
  33. $cesar=array(
  34.        0=>"a",
  35.        1=>"b",
  36.        2=>"c",
  37. 3=>"d",
  38.        4=>"e",
  39.        5=>"f",
  40.    6=>"g",
  41.        6=>"h",
  42.        7=>"i",
  43. 9=>"j",
  44.        10=>"k",
  45.        11=>"l",
  46. 12=>"m",
  47.        13=>"n",
  48.        14=>"ñ",
  49.    15=>"o",
  50.        16=>"p",
  51.        17=>"q",
  52.    18=>"r",
  53.    19=>"s",
  54.        20=>"t",
  55.        21=>"u",
  56. 22=>"v",
  57. 23=>"w",
  58. 24=>"x",
  59.    25=>"y",
  60. 26=>"z");
  61. echo "Mensaje original: ".$mensaje."<br>";
  62. echo "Mensaje codificado: <br>";
  63. for($i=0;$i<strlen($mensaje);$i++)
  64. {
  65.  $cifrado=(($julio[$mensaje[$i]] + $n))%27;
  66.  echo $cesar[$cifrado];
  67.  }
  68.  
  69.  
  70. ?>
[/code]


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

Last resort.
[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


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

Podes reemplazar:

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

por

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

Esta buena la implementacion

Saludos


En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
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 am »

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

Last resort.
.:WindHack:.

Desconectado Desconectado

Mensajes: 167

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 am »

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

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


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

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
  1. # @Algoritmo Julio Cesar
  2. # @Shell Root
  3.  
  4. $sMsg = 'Shell Root';
  5. $sMsg = strtolower($sMsg);
  6. $sNumber = 28;
  7. $sEncryption = 'abcdefghijklmn&#241;opqrstuvwxyz';
  8.  
  9. echo "Cadena Original: ".$sMsg."\n";
  10. echo "Cadena Cifrada: ";
  11. for($i=0;$i<strlen($sMsg);$i++){
  12. if($sMsg[$i] == ' '){ echo " "; }
  13. for($j=0;$j<strlen($sEncryption);$j++){
  14. if($sMsg[$i] == $sEncryption[$j]){
  15. echo $sEncryption[$j + $sNumber % 27];
  16. }
  17. }
  18. }
  19.  
  20. echo "\n";

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

Te vendería mi talento por poder dormir tranquilo.
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 pm »

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

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 pm »

otra forma mas facil....

Código
  1. <?php
  2. $x= "a";
  3. $x++;
  4. echo $x;
  5. ?>

boludeando descubri eso e hice esta funcion...

Código
  1. <?php
  2. function cesar($cadena,$desplazamiento){
  3. if(!is_numeric($desplazamiento)){
  4.   return FALSE;
  5. }
  6. $cifrado='';
  7. $i=0;
  8. while(strlen($cadena)>$i){
  9. $x=0;
  10. $a=substr($cadena,$i,1);
  11. while($desplazamiento>$x){
  12.  $a++;
  13.  $x++;
  14. }
  15. $cifrado.=$a;
  16. $i++;
  17. }
  18. return $cifrado;
  19. }
  20. ?>
  21.  
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 pm por KrossPock » En línea


[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


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

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

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
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 pm »

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 pm »

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.
Páginas: [1] 2 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 1,947 Último mensaje 27 Junio 2011, 10:07 am
por Gambinoh
Otra perspectiva al tema de megaupload
Foro Libre
Foxy Rider 2 2,052 Último mensaje 5 Febrero 2012, 23:50 pm
por BlackZeroX
La otra cara del algoritmo
Noticias
wolfbcn 1 1,066 Último mensaje 26 Junio 2019, 16:54 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines