MINI-CONCURSO Programación (java/visual basic)
-
es cierto, pensé que la letra que más se repetía era una rara... por poco, le tenía que haber puesto más adornos
-
@yandrac said:
@Kar Rak said:
Te dejo la respuesta en un privao, si te la publico aquí le hare el trabajo ya a todos y no consiste en eso el problema jajaja sino en que piensen como hacerlo.
Si, 126 perdon jajaja pero 95 si está bien dicho o eso creo! jaja
a mi me lo puedes enviar tambien?? :icon_razz:
XD hecho
-
bueno, por dónde vais? qué habéis hecho? alguien no sabe por dónde continuar o está atascado?
venga, que apenas veo preguntas por aquí, qué pasa? -
Creo que lo conseguí, te envié la respuesta por mp
Dejo código por si alguien le sirve, antes de que me baneen otra vez haha
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Cojo el texto en forma de variable Dim caracteres As String = TextBox1.Text 'Declaro el buffer que nos servira para el bucle "For Each" Dim caracter As String 'Declaramos el numero de numeros a desplazar, fui probando y el 5 me dio =D Dim desplazar As Integer = 37 'Declaramos el buffer que trabajara con el caracter Dim buffer1 As Integer 'Declaramos la frase donde se iran guardando los caracteres Dim frase As String = Nothing 'Empezamos el bucle For Each caracter In caracteres 'Lo de añadir el ascii y la frase en la listbox solo es para comprobar 'que el algoritmo trabaja bien 'pasamos el caracter a ascii buffer1 = Asc(caracter) If buffer1 = 91 Then ListBox1.Items.Add("xddd") End If 'desplazamos el numero especificado arriba "5" buffer1 = buffer1 + desplazar If buffer1 > 127 Then ListBox1.Items.Add(buffer1) 'Le resto 95 en caso de que pase de 127 buffer1 = buffer1 - 95 'Paso el ASCII a caracter frase = frase & Chr(buffer1) 'Lo copio porque me da vagueza escribir la frase desencriptada -.- My.Computer.Clipboard.SetText(frase) ElseIf buffer1 < 32 Then ListBox1.Items.Add(buffer1) 'Le sumo 95 en caso de que pase de 32 buffer1 = buffer1 + 95 'Paso el ASCII a caracter frase = frase & Chr(buffer1) 'Lo copio porque me da vagueza escribir la frase desencriptada -.- My.Computer.Clipboard.SetText(frase) Else ListBox1.Items.Add(buffer1) 'Paso el ASCII a caracter frase = frase & Chr(buffer1) 'Lo copio porque me da vagueza escribir la frase desencriptada -.- My.Computer.Clipboard.SetText(frase) End If ListBox1.Items.Add(frase) Next End Sub End Class
-
bien bien, veo progresos!
pero como te dije en el MP, la clave no es del todo exacta. Ya le ha pasado a otro usuario, vé algo ligeramente legible y piensa haber dado con la clave, cuando en realidad lo que ocurre es que las letras minúsculas de mi mensaje, que quedaron encriptadas, han sido desencriptadas como mayúsculas. Claro, eso sirve, si todo el mensaje consta de letras del alfabeto. ¿Pero si meto números por ejemplo? jejeje, si yo escribo "hola" y tu lo desencriptas como "HOLA" pues de puta madre, pero si encripto "1234" te va a salir "pqrs" o cosas así.
Es decir, que con esa clave que encontraste, puedes desencriptar palabras, y por tanto has visto parte de mi mensaje encriptado, pero los números o comas, puntos, paréntesis etc. siguen ocultos.
Ya sabes, sigue buscando, ahora ya sabes que estás cerca, porque sabes que tienes que convertir las mayúsculas a minúsculas, y eso es tan fácil como sumar 32 que es el número que separa la mayúscula de su minúscula jeje
Ya lo tienes! -
ya te la mande de nuevo y esta vez si
-
Bueno, pues hasta ahora lo han resuelto 3 personas. Por orden en resolverlo:
1. fabnun
En Java
El código que propuso fabun:public static String desencriptCesar(String in) { StringBuffer tempReturn = new StringBuffer(); char c; for (int i = 0; i < in.length(); i++) { c = in.charAt(i); c = (char) ((int) c + 37); if (c > 'z') { c = (char) ((int) c - 95); } tempReturn.append(c); } return tempReturn.toString(); } public static void main(String[] args) { String s = "6NDU@wkoj86>JGJMw]!!|!jj86=8ICJM
Sirve, aunque tal y como está ahí únicamente funciona con la clave 37. Habría que modificar el código un poco para que permitiese usar otras claves.
2. Hawkings
En java también.
Propuso un código más elaborado, con interfaz gráfica, y dos opciones de desencriptado. Además permite la opción de encriptar mensajes. Muy currado:
[http://www.mediafire.com/?nx7uzrn97xxg1bc][0]">[http://www.mediafire.com/?nx7uzrn97xxg1bc][1]En tercer lugar, returnxd, que acaba de publicar su código en Visual Basic.
Os dejo el ejecutable que hice yo en java, sencillito pero encripta y desencripta, claves positivas, negativas y por fuerza bruta:
[attachment=0]Si alguien aun quiere resolverlo seguiremos respondiendo dudas, aunque el podio está ya completo :icon_mrgreen:
El mensaje, tras desencriptarlo era:
[size][color][b]Enhorabuena, has descifrado el mensaje![/b][/color][/size]
Que posteado en el foro tal cual:
Enhorabuena, has descifrado el mensaje!Así que enhorabuena a los que lo resolvieron, y a los que no, aun pueden intentarlo, como veis no era complicado, apenas unas líneas de código.
[0]: <a href=
[1]: http://www.mediafire.com/?nx7uzrn97xxg1bc -
Pensé que habría más participantes, pero bueno por ahora me halaga ver que 3 personas lo han resuelto (era bien sencillo).
Si hay más gente dispuesta y esas cosas, habrá un próximo concurso algo mas divertido. Os dejo mi ejecutable (encripta y desencripta y está algo mas elaborado. No obstante, carece de control de errores, asiq no le forceis xD).
[attachment=0]
Nada mas, un saludo y gracias por participar!!!
-
A poco que mires el código de los esqueletos y el publicado por Salva lo entenderás
-
¿Para cuándo uno más complicado?
Me gustaría practicar C++, que es el lenguaje que estoy aprendiendo (en el caso de que los planteáis no supierais C++ me da igual, por que si no lo pudiera resolver viendolo en Java lo transpaso :P)