mi aplicacion necesita un empujon

Iniciado por andres_5, 23 Agosto 2009, 03:54 AM

0 Miembros y 1 Visitante están viendo este tema.

andres_5

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
( 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

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
muxas gracias

Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



adninc5

Gracias por el aporte, lo descargare

andres_5

bueno,no era un aporte era por si alguien podia hecharme un cable... :silbar:
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



Lewert

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
Crack the bytes, crack yourself

andres_5

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 ;)
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube



seba123neo

Hola, proba esto haber si te sirve..

Código (vb) [Seleccionar]
Option Explicit

Private Sub Command1_Click()
    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 ")
End Sub

Private Function descifrar(ByVal pCadena As String, ByVal pPassword As String) As String

    Dim vContador As Integer, vIndice As Integer, vFila As Integer, vNumero As Integer
     
    pCadena = LCase(pCadena)
    pPassword = LCase(pPassword)
   
    For vContador = 1 To Len(pCadena)
        vIndice = vIndice + 1
        If vIndice > Len(pPassword) Then vIndice = vIndice - Len(pPassword)
       
        vFila = Asc(Mid(pPassword, vIndice, 1)) - 97
       
        If vFila = 0 Then vFila = 26
       
        vNumero = Asc(Mid(pCadena, vContador, 1))
       
        If vNumero >= 97 And vNumero <= 122 Then vNumero = vNumero + vFila
        If vNumero > 122 Then vNumero = vNumero - 26
       
        descifrar = descifrar & Chr(vNumero)
    Next vContador
   
End Function


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Lewert

Código (vb) [Seleccionar]
Function Algo(ByVal Texto As String, ByVal Clave As String)
    Dim i As Long, Tmp As String
    For i = 1 To Len(Texto)
        If i Mod Len(Clave) = 0 Then
            Tmp = Mid$(Clave, Len(Clave), 1)
        Else
            Tmp = Mid$(Clave, i Mod Len(Clave), 1)
        End If
        Debug.Print "Texto: " & Mid$(Texto, i, 1) & "   " & "Clave: " & Tmp
    Next i
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
Crack the bytes, crack yourself

andres_5

Muchas gracias, me habeis sido de muxa ayuda, seguire con mi proyecto ;-)
Algunos de mis proyectos sobre electronica -->
En Mi Canal de Youtube