Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: andres_5 en 23 Agosto 2009, 03:54 am



Título: mi aplicacion necesita un empujon
Publicado por: andres_5 en 23 Agosto 2009, 03:54 am
hola, os presento mi aplicacion como un proyecto que quedo atascado, y no encuentro la tecla, para seguir.
mi apliacion es un encriptador tipo vigenere
http://es.wikipedia.org/wiki/Cifrado_de_Vigen%C3%A8re (http://es.wikipedia.org/wiki/Cifrado_de_Vigen%C3%A8re)
( con la apliacion del caracter "ñ", ya que al ser frances este tipo, no introdujo en su tabla la "ñ" ), bueno no esta terminada.
bueno mi encriptador cifra de cadenas de 10 y 10, quisiera que pudiera cifrar todas las posiblidades
Para aquellos que no entendieron nada os explico mas detallada:
vigenere creo una tabla
(http://infow.files.wordpress.com/2009/01/vigeneresquare2.jpg)
para cifrar un texto necesitaras 2 palabras
1º la que queremos cifrar
2º la clave

y mediante un "juego" matematicos o visuales sale la letra cifrada


por ejemplo:
mensaje:      P A R I S  V A U T  B I E N  U N E  M E S S E
clave:           L O U P L  O U P L  O U P L  O U P  L O U P L
criptograma:  A O L X D  J U J E  P C T Y  I H T  X S M H P


Clave: loup
la P y la L da la A
la palabra clave como veis se repite sucesivamente, Ese es mi verdadero problema, mi palabra clave no se repite , y no sabria como hacerlo. y una vez solucionado quisiera poder codificar sin limitaciones de caracteres
PD: y mas importante, mi source es algo muy extenso, porque aun no lo termine, pero aun asi admito sugerencia para reducirlo (cosa que ahora no me preocupa)
PD2: si comparas resultados de la tabla vigenere frances con el español, no sera el mismo resultado
para teminar no seais muy estrictos conmigo que aun no esta terminado ;)
source: http://www.megaupload.com/?d=0K5YK436 (http://www.megaupload.com/?d=0K5YK436)
muxas gracias
 


Título: Re: mi aplicacion necesita un empujon
Publicado por: adninc5 en 23 Agosto 2009, 04:23 am
Gracias por el aporte, lo descargare


Título: Re: mi aplicacion necesita un empujon
Publicado por: andres_5 en 23 Agosto 2009, 14:49 pm
bueno,no era un aporte era por si alguien podia hecharme un cable... :silbar:


Título: Re: mi aplicacion necesita un empujon
Publicado por: Lewert en 23 Agosto 2009, 17:05 pm
Si el mensaje es PARIS VAUT BIEN UNE MESSE y la clave LOUP, haz un For ... Next para el mensaje y dentro otro For ... Next para la clave haciend uso de Mod. Si no entiendes lo que te quiero decir te hago un code :xD


Título: Re: mi aplicacion necesita un empujon
Publicado por: andres_5 en 23 Agosto 2009, 19:36 pm
for... next, pero como hacer que atribulla la primera letra con la primera, la segunda con la segunda, asi asta acabar con la palabra clave , y repetirla indefinidas veces, paa asi no depender ni de la cantidad de caracteres , ni la extension de la palabra clave...

Muxas gracias ;)


Título: Re: mi aplicacion necesita un empujon
Publicado por: seba123neo en 23 Agosto 2009, 20:04 pm
Hola, proba esto haber si te sirve..

Código
  1. Option Explicit
  2.  
  3. Private Sub Command1_Click()
  4.    MsgBox descifrar("P A R I S  V A U T  B I E N  U N E  M E S S E ", "L O U P L  O U P L  O U P L  O U P  L O U P L ")
  5. End Sub
  6.  
  7. Private Function descifrar(ByVal pCadena As String, ByVal pPassword As String) As String
  8.  
  9.    Dim vContador As Integer, vIndice As Integer, vFila As Integer, vNumero As Integer
  10.  
  11.    pCadena = LCase(pCadena)
  12.    pPassword = LCase(pPassword)
  13.  
  14.    For vContador = 1 To Len(pCadena)
  15.        vIndice = vIndice + 1
  16.        If vIndice > Len(pPassword) Then vIndice = vIndice - Len(pPassword)
  17.  
  18.        vFila = Asc(Mid(pPassword, vIndice, 1)) - 97
  19.  
  20.        If vFila = 0 Then vFila = 26
  21.  
  22.        vNumero = Asc(Mid(pCadena, vContador, 1))
  23.  
  24.        If vNumero >= 97 And vNumero <= 122 Then vNumero = vNumero + vFila
  25.        If vNumero > 122 Then vNumero = vNumero - 26
  26.  
  27.        descifrar = descifrar & Chr(vNumero)
  28.    Next vContador
  29.  
  30. End Function

saludos.


Título: Re: mi aplicacion necesita un empujon
Publicado por: Lewert en 24 Agosto 2009, 02:01 am
Código
  1. Function Algo(ByVal Texto As String, ByVal Clave As String)
  2.    Dim i As Long, Tmp As String
  3.    For i = 1 To Len(Texto)
  4.        If i Mod Len(Clave) = 0 Then
  5.            Tmp = Mid$(Clave, Len(Clave), 1)
  6.        Else
  7.            Tmp = Mid$(Clave, i Mod Len(Clave), 1)
  8.        End If
  9.        Debug.Print "Texto: " & Mid$(Texto, i, 1) & "   " & "Clave: " & Tmp
  10.    Next i
  11. End Function

El único inconveniente es que los espacios tambien los cuenta, asi que tendras que usar la funcion palabra por palabra... se puede solucionar fácilmente con un Split, pero eso te lo dejo a ti :P


Título: Re: mi aplicacion necesita un empujon
Publicado por: andres_5 en 24 Agosto 2009, 22:50 pm
Muchas gracias, me habeis sido de muxa ayuda, seguire con mi proyecto ;-)