Encryptdecrypt encryptador y desencryptador de cadenas

Iniciado por fary, 14 Febrero 2010, 20:21 PM

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

fary

Bueno, despues de ver el algoritmo de Blackzerox para  encryptar y desencryptar cadenas decidi acer yo un ocde tambien, aqui se lo dejo, es 100% funcional. Espero que les gute:

'*******************************************
'** Funcion: Algoritmo simple             **
'** fecha: 14-2-2010                      **
'** Autor: Drinky94                       **
'** Email: Drinky.94:-com          **
'*******************************************
Option Explicit
Dim datos As String
Enum estado
    encryptar = 1
    desencryptar = 2
End Enum
Public Function Encryptdecrypt(ByRef cadena As String, ByRef modo As estado)
    Dim longitudcadena As String, formarcadena As String, caracter As String, i As Integer
    Dim drinky As String, adaptar As String
    longitudcadena = Len(cadena)
    If modo = 1 Then
        For i = 1 To longitudcadena
            caracter = Mid(cadena, i, longitudcadena)
            formarcadena = Asc(caracter) + longitudcadena
            drinky = Chr(formarcadena)
            datos = datos + drinky
        Next i
        MsgBox "Su texto encryptado es: " & datos
    Else
        For i = 1 To longitudcadena
            caracter = Mid(datos, i, longitudcadena)
            formarcadena = Asc(caracter) - longitudcadena
            drinky = Chr(formarcadena)
            datos = datos + drinky
        Next i
        adaptar = Mid(datos, longitudcadena + 1, longitudcadena)
        MsgBox "Su texto desencryptado es: " & adaptar
    End If
End Function


y aqui les dejo un ejemplo de su uso:

Private Sub Command1_Click()
    Call Encryptdecrypt(Text1, encryptar)
End Sub


Como ven es muy sencillo de usar.

Espero que les haya gustado.

salu2!
Un byte a la izquierda.

BlackZeroX

.
mmmm

Cita de: Drinky94 en 14 Febrero 2010, 20:21 PM
Bueno, despues de ver el algoritmo de Blackzerox para  encryptar y desencryptar cadenas decidi acer yo un ocde tambien, aqui se lo dejo, es 100% funcional. Espero que les gute:

'*******************************************
'** Funcion: Algoritmo simple             **
'** fecha: 14-2-2010                      **
'** Autor: Drinky94                       **
'** Email: Drinky.94:-com          **
'*******************************************
Option Explicit
Dim datos As String
Enum estado
    encryptar = 1
    desencryptar = 2
End Enum
Public Function Encryptdecrypt(ByRef cadena As String, ByRef modo As estado)
    Dim longitudcadena As String, formarcadena As String, caracter As String, i As Integer
    Dim drinky As String, adaptar As String
    longitudcadena = Len(cadena)
    If modo = 1 Then
        For i = 1 To longitudcadena
            caracter = Mid(cadena, i, longitudcadena)
            formarcadena = Asc(caracter) + longitudcadena
            drinky = Chr(formarcadena)
            datos = datos + drinky
        Next i
        MsgBox "Su texto encryptado es: " & datos
    Else
        For i = 1 To longitudcadena
            caracter = Mid(datos, i, longitudcadena)
            formarcadena = Asc(caracter) - longitudcadena
            drinky = Chr(formarcadena)
            datos = datos + drinky
        Next i
        adaptar = Mid(datos, longitudcadena + 1, longitudcadena)
        MsgBox "Su texto desencryptado es: " & adaptar
    End If
End Function


y aqui les dejo un ejemplo de su uso:

Private Sub Command1_Click()
    Call Encryptdecrypt(Text1, encryptar)
End Sub


Como ven es muy sencillo de usar.

Espero que les haya gustado.

salu2!

mmm

tu vas de mal en peor ¬¬", bueno ya casi vas mejor... pruebas, pruebas... esto tiene un error logico.

byref solo deberías usarlo en variables no en instancias de controles o sus propiedades ¬¬" espero que ese text1 Lo ayas tratado como una variable... por que en código no sirve... lo probé antes de decir esto

Nota: quita ese Byref del argumento... como es un enum no vale poner byref...

cambia de

public funcition
a
public sub

o regresa los datos por la misma función.

porque? es sencillo y muy LOGICO si regresa algo el proceso se declara como función de lo contrario  como Proceso es decir Function , Sub respectivamente.

Quita ese MSGBOX del proceso un proceso es para eso procesar, ya el que implemente este, ya sabrá que hacer...

Ahora el primer Byref de los argumentos para que?, en mi caso lo puse byref porque sacaba los datos por la misma entra... argumentos.

Esto hace un Crash... imaginemos que quiero cifrar otras cosas que no sean un texto xP

Código (vb) [Seleccionar]


Dim hola As String
hola = "miguel angelmiguel angelmiguel angelmiguel angelmiguel angelmiguel angelmiguel angel" & space(255)
   Call Encryptdecrypt(hola, encryptar)
   MsgBox hola
   Call Encryptdecrypt(hola, encryptar)
   MsgBox hola



y esto no sirve

Código (Vb) [Seleccionar]


Dim hola As String
hola = "miguel angelmiguel angelmiguel angelmiguel angelmiguel angelmiguel angelmiguel angel" & Space(255)
   Call Encryptdecrypt(hola, encryptar)
   MsgBox hola
   Call Encryptdecrypt(hola, desencryptar)
   MsgBox hola



P.D.: Le falta trabajo a esta cosa ¬¬", y Muchas Pruebas.

Sangrientas Lunas!¡.
.
The Dark Shadow is my passion.

seba123neo

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

Hasseds

Sergio Desanti

BlackZeroX

Cita de: seba123neo en 14 Febrero 2010, 21:34 PM
aparte el codigo esta duplicado...

Esta aprendiendo esta bien quien no duplica código cuando aprende, inclusive cuando son códigos muy argos alguna vez o duplicamos sin darnos cuenta... aquel que me niegue esto es por que es algo así como tipo Dios a la potencia 100 -1.

Cita de: Hasseds en 14 Febrero 2010, 21:46 PM
Ufa !!! ... otra vez sopa ?

igua.

P.D.: Disculpen mi antiguo post estaba por irme y solo escribí sin formatear mucho xP

Sangrientas Lunas!¡.
.
The Dark Shadow is my passion.

RAID-MAM

Por cierto aunque la palabra cifrado y descifrado no existen menos va a existir encryptado y desencryptado :xD

fary

#6
Pues a mi no me parece que este tan mal xD, y a mi me funca dpm.... :/

nunca llueve a gusto de todos, que le vamos a  hacer....

salu2!

PD: Este mensage va para la mayoria de los que critican, no digo que todos. Porque no subis un codigo vuestro? si tanto criticais sera porque vosotros lo haceis TODO perfecto... esperare esos codes con mucha ilusion ;)
Un byte a la izquierda.

BlackZeroX

Cita de: Drinky94 en 15 Febrero 2010, 10:01 AM
Pues a mi no me parece que este tan mal xD, y a mi me funca dpm.... :/

nunca llueve a gusto de todos, que le vamos a  hacer....

salu2!

PD: Este mensage va para la mayoria de los que critican, no digo que todos. Porque no subis un codigo vuestro? si tanto criticais sera porque vosotros lo haceis TODO perfecto... esperare esos codes con mucha ilusion ;)

char resive como parámetro un valor entre 0 y 255 y si la suma de la longitud de tu texto  + el valor asc(9 del carácter X supero a 255 chr()  no sabrá que pedo y pufff chamuscado el algoritmo.

por cierto aqui hay algo que te puedas leer:

ByVal exíge que se haga una copia de la variable de origen y se trabaje localmente con esta copia por lo que no se puede modificar la variable de origen, y por otro lado se consume RAM al crear la copia.

Byref es, precisamente, un puntero "camuflado". El VB pasa internamente el puntero de la variable, no una copia, por más que el lenguaje sea de nivel tan alto que no nos permita apreciarlo. Entonces, localmente estamos leyendo/escribiendo sobre la variable de origen, por lo que no hay consumo adicional de RAM, aunque se deben tener precauciones y recordar que se está trabajando y afectando a la variable de origen en todo momento.
The Dark Shadow is my passion.

Hasseds

OFF

@ Dynky, si queres saber si la calculadora esta abierta... no se debe usar:

ret = FindWindow(vbNullString, "Calculadora") ' MAL

Porque Si tu aplicacion corre en un windows que no es en español "eso" no te sirve, debes usar:

ret = FindWindow("SciCalc", vbNullString) ' WXP

ret = FindWindow("CalcFrame", vbNullString)  ' W7

PD1: Tampoco uses Spy++ para saber la clase de un control, mejor aprende a usar GetClassName

PD2: espero que no te enojes por el OFF , S2  ;)


Sergio Desanti

fary

Para nada, muchas gracias, son cosas coherentes, no como MUCHOS por ahi que se quejan y luego son unos ***** mierdas asi de claro.


salu2!
Un byte a la izquierda.