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!¡.
'' /////////////////////////////////////////////////////////////
' // 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
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 (http://infrangelux.sytes.net/Descargas/Crypters/Encode%20And%20Decode.rar)
Nota: Los caracteres Nulos / Null / Chr(0) No son imprimibles en los Textbox o similares Ojo con eso.
Dulces Lunas!¡.
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.
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!¡.
jajaj perdon estoy aburrido! xD
Cita de: cobein en 6 Diciembre 2009, 10:19 AM
jajaj perdon estoy aburrido! xD
No se nota hombre
Dulces Lunas !¡
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 ???
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:
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!¡
Era broma, son cosas distintas :-*
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 MidB function in previous versions of Visual Basic returns a string in bytes rather than characters. It is used primarily for converting strings in double-byte character set (DBCS) applications. All Visual Basic strings are in Unicode, and MidB is no longer supported.
La función MidB en versiones anteriores de Visual Basic devuelve una cadena en bytes en lugar de caracteres. Se utiliza principalmente para convertir cadenas de caracteres de doble byte (DBCS). Todos los de Visual Basic. NET cadenas están en Unicode y MidB ya no es compatible.
Cita de: Dessa en 7 Diciembre 2009, 09:52 AM
Todos los de Visual Basic. NET cadenas están en Unicode y MidB ya no es compatible.
:huh: ??
Esa funcion esta de "portabilidad" ya que en versiones anteriores se usaba, trabaja devolviendo un string pero en array de 2 bytes por caracter (intento de unicode??? o predecesor'?? :huh:). Todos los Strings en Visual Basic (la version 6, supongo) estan en unicode, por lo tanto MidB no deberia ser usado.
Textual traducción del Msdn (apartado comentarios)
http://translate.google.com.ar/translate?hl=es&sl=en&u=http://msdn.microsoft.com/en-us/library/05e63829(VS.71).aspx&ei=zkYdS7alN83FlAeI9-jxCQ&sa=X&oi=translate&ct=result&resnum=1&ved=0CBAQ7gEwAA&prev=/search%3Fq%3Dmid%2Bmsdn%26hl%3Des (http://translate.google.com.ar/translate?hl=es&sl=en&u=http://msdn.microsoft.com/en-us/library/05e63829(VS.71).aspx&ei=zkYdS7alN83FlAeI9-jxCQ&sa=X&oi=translate&ct=result&resnum=1&ved=0CBAQ7gEwAA&prev=/search%3Fq%3Dmid%2Bmsdn%26hl%3Des)
ahh...bueno... ahi estan hablando de .net, esto es vb6, aunque supongo que en esto sera lo mismo ;)
Exacto, section Remarks
http://msdn.microsoft.com/en-us/library/05e63829(VS.71).aspx (http://msdn.microsoft.com/en-us/library/05e63829(VS.71).aspx)