Autor
|
Tema: Otra perspectiva para correr el algoritmo de Julio Cesar (Leído 5,960 veces)
|
Sadam.sh
Wiki
Desconectado
Mensajes: 15
#!/bin/bash
|
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 [code]<?php //Recuerda que aquí no dejo el formulario HTML $mensaje=$_POST['mensaje']; $n=$_POST['n']; 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"); 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 am por Sadam.sh »
|
En línea
|
Last resort.
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
Podes reemplazar: 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
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
Mensajes: 15
#!/bin/bash
|
Gracias, no me di cuenta. Así queda mucho mejor. Saludos
|
|
|
En línea
|
Last resort.
|
|
|
.:WindHack:.
Desconectado
Mensajes: 167
Prisionero de mi propia mente...
|
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
|
Pwned, cuando se ingresa una mayúscula. XD 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, # @Algoritmo Julio Cesar # @Shell Root $sMsg = 'Shell Root'; $sNumber = 28; $sEncryption = 'abcdefghijklmnñ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, alex@shellroot:~/Escritorio$ php PoC.php Cadena Original: shell root 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
Mensajes: 15
#!/bin/bash
|
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
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
Mensajes: 208
|
otra forma mas facil.... <?php $x= "a"; $x++; echo $x; ?>
boludeando descubri eso e hice esta funcion... <?php function cesar($cadena,$desplazamiento){ return FALSE; } $cifrado=''; $i=0; $x=0; 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 pm por KrossPock »
|
En línea
|
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
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!
|
|
|
|
Sadam.sh
Wiki
Desconectado
Mensajes: 15
#!/bin/bash
|
si... la ñ seria otro problema... solo les mostre que hay otra forma de hacerlo, sin el array, que queda poco dinamico (? 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.
|
|
|
|
|