* [ Source ] Encoder and Decode [Algoritmo Simple]

Iniciado por BlackZeroX, 6 Diciembre 2009, 08:30 AM

0 Miembros y 2 Visitantes están viendo este tema.

BlackZeroX

No tenia nada que hacer y ademas al fijarme en el post donde publica Sharki su proyecto Personal Algorith el cual solo crea un entador por caracteres estaticos desidi crear un Encoder and decoder o mejor conosidos como

Encryptador con su respectivo desencrypotador

Solo que este SI FUNCIONA POR CONTRASEÑA para Encryptar/Desencryptar los datos (Solo es usada para encryptar/desencryptar de Hecho asi que no seria realmente una Contraseña xP).

Es un codigo Sencillo!¡.

Código (vb) [Seleccionar]


''   /////////////////////////////////////////////////////////////
'   // Autor:   BlackZeroX ( Ortega Avila Miguel Angel )       //
'   //                                                         //
'   // Web:     http://InfrAngeluX.Sytes.Net/                  //
'   //                                                         //
'   //    |-> Pueden Distribuir Este Codigo siempre y cuando   //
'   // no se eliminen los creditos originales de este codigo   //
'   // No importando que sea modificado/editado o engrandesido //
'   // o achicado, si es en base a este codigo                 //
'   /////////////////////////////////////////////////////////////

Option Explicit
Enum tAcciones
    Encryptar = 0
    Desencryptar
End Enum
Public Sub DecodeEncodeString(ByRef Data As String, Pass As String, Optional Accion As tAcciones = Encryptar)
Dim PosPass             As Long
Dim CharData            As String * 1
Dim i                   As Long
    If Pass <> "" Then
        For i = 1 To Len(Data)
            CharData = Mid(Data, i, 1)
            PosPass = IIf((PosPass + 1) > Len(Pass), 1, PosPass + 1)
            Mid(Data, i, 1) = DecodeEncodeChar(CharData, Pass, PosPass, Accion) '    //  Es para evitar usar CopyMemory
        Next i
    End If
End Sub
Public Function DecodeEncodeChar(StrChar As String, ByRef Psss As String, PosPass As Long, Optional Encode_Code As tAcciones = Encryptar) As String
Dim CharPass            As String
Dim NewChar             As Byte
Dim i                   As Long
Const cBytes            As Byte = 255
    CharPass = Mid(Psss, PosPass, 1)
    '   //  Buscamos la coherencia
    For i = 0 To cBytes
        If StrChar = Chr(i) Then
            '   //  Calculamos el Nuevo Caracter
            If Encode_Code = Encryptar Then
                NewChar = IIf(Asc(CharPass) + Asc(StrChar) > cBytes, _
                             (Asc(CharPass) + Asc(StrChar)) - cBytes, _
                              Asc(CharPass) + Asc(StrChar))
            Else
                NewChar = IIf(Asc(StrChar) - Asc(CharPass) < 0, _
                              cBytes + (Asc(StrChar) - Asc(CharPass)), _
                              Asc(StrChar) - Asc(CharPass))
            End If
            DecodeEncodeChar = Chr(NewChar)
            Exit For
        End If
    Next i
End Function



ejemplo de uso:

Agregar en un formuario
1 TextBox
2 CommandButton con matrix 0 y 1 respectivamente

Código (vb) [Seleccionar]


Private Sub Command1_Click(Index As Integer)
    Dim AuxData         As String
    AuxData = Text1.Text
    Call DecodeEncodeString(AuxData, "Miguel Angel Ortega Avila", IIf(Index = 0, Encryptar, Desencryptar))
    Text1.Text = AuxData
End Sub



editpo: Junto Post --->

Para quienes no les sirva bien aquí tienen el codigo implementado en un formulario:

http://infrangelux.sytes.net/Descargas/Crypters/Encode And Decode.rar

Nota: Los caracteres Nulos / Null / Chr(0) No son imprimibles en los Textbox o similares Ojo con eso.

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

cobein

Ya que estamos sigo molestando =D

Una cosa que nadie tiene en cuenta, Mid, Asc, etc estan en dos sabores con y sin $ porque? simple Mid se usa con variants, Mid$ se usa con strings, funcionan de igual manera pero internamente se hace una conversion innecesaria. Lo mismo vale para las demas funciones.

En un algoritmo simple como este no hace mucha diferencia pero en casos que se utilice mucho se va a notar.
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

BlackZeroX


Que nos echamos otro post de discusion?
Deja le cambio nombre...

jajajajaja

Si eso del $ siempre se me pasa es algo que casi no uso por casos sencillos pero es una mala costumbre mia xS

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

cobein

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

BlackZeroX

The Dark Shadow is my passion.

Hasseds

#5
Hola Black, el concepto del source me parece bueno, luego cada uno modificará a su manera el mismo

por otro lado (y ya que viene al caso) mid no es siempre una funcion, a veces es una sentencia, Black por ejemplo lo utiliza de las dos maneras


Option Explicit

Private Sub Form_Load()

 Dim cadena As String: cadena = "1234567890"

 MsgBox cadena, , "cadena"

 MsgBox Mid(cadena, 4, 2), , "Mid funcion =  Mid(cadena, 4, 2)"

 If Mid(cadena, 4, 2) = "45" Then Mid(cadena, 4, 2) = "xx"
 
 MsgBox cadena, , "Mid sentencia  = Mid(cadena, 4, 2) = ""xx"""
 
 End

End Sub  




Por ultimo una duda , tambien se produce esa "conversion innecesaria" si cadena en este ultimo caso o CharData en el code de Black ya estan declaradas como string ???






Sergio Desanti

Karcrack

Veo que Cobein se aburre :P, eso me gusta :laugh: La ultima vez que se aburria libero el code de recuperar contraseñas en FF :xD

PD: Mi encriptacion mola mas :(
https://foro.elhacker.net/empty-t267949.0.html
:laugh: :laugh: :laugh: :laugh:

BlackZeroX

Cita de: Karcrack en  6 Diciembre 2009, 16:16 PM
Veo que Cobein se aburre :P, eso me gusta :laugh: La ultima vez que se aburria libero el code de recuperar contraseñas en FF :xD

PD: Mi encriptacion mola mas :(
https://foro.elhacker.net/empty-t267949.0.html
:laugh: :laugh: :laugh: :laugh:

Si pero usas ASM combinado con vb6 en cambio un usuario que carece de conocimientos de ASM y solo le importo dar un sencillo ejemplo de encryptacion para que vean que no es tan dificil como parece ser este temá

Dulces Lunas!¡
The Dark Shadow is my passion.

Karcrack


BlackZeroX

Cita de: cobein en  6 Diciembre 2009, 10:07 AM
Ya que estamos sigo molestando =D

Una cosa que nadie tiene en cuenta, Mid, Asc, etc estan en dos sabores con y sin $ porque? simple Mid se usa con variants, Mid$ se usa con strings, funcionan de igual manera pero internamente se hace una conversion innecesaria. Lo mismo vale para las demas funciones.

En un algoritmo simple como este no hace mucha diferencia pero en casos que se utilice mucho se va a notar.


Solo como Dato:

Igual están ascB(), midB()

Dulces Lunas!¡
The Dark Shadow is my passion.