Un algoritmo de encriptación

A

Esto es un algoritmo de encriptación que hice hace algún tiempo.
Como podreis comprobar, no hay algoritmo para desencriptar, la
razón de esto es que el algoritmo es exactamente el mismo tanto
para encriptar como para desencriptar. Soporta clave y el 'output'
es en formato Unicode.

Funciona por bytes, pero se puede adaptar facilmente a cadenas
y es bastante rápido. El código es Visual Basic 6.

' -----------------------------------
' Inicio de código
' -----------------------------------

Public Sub algoritmo(ByteArray() As Byte, Optional key As String)

Dim offset As Long
Dim bytelen As Long
Dim Handler As String


' la variable handler empieza
' siempre siendo cero


Handler = 0


' Si no se ha definido una clave
' la definimos como "password"


If key = "" Then key = "password"


' Bytearray y longitud


bytelen = UBound(ByteArray) + 1


' Comienzo del propio algoritmo


For offset = 0 To (bytelen - 1)


' Creamos el handler


If Handler <= 10 Then Handler = Handler + offset
If Handler > 10 And Handler <= 25 Then Handler = Handler + 1
If Handler > 25 Then Handler = Right(Handler, 1) + Right(offset, 1)


' Hacemos XOR según clave y handler


ByteArray(offset) = ByteArray(offset) Xor Int(Handler Mod Len(key) + Asc(key))


Next

End Sub

' Aplicamos el algoritmo a archivos :)

Public Sub doFile(SourceFile As String, DestFile As String, Optional key As String)

Dim Filenr As Integer
Dim ByteArray() As Byte


' leemos el archivo origen


Filenr = FreeFile
Open SourceFile For Binary As #Filenr
ReDim ByteArray(0 To LOF(Filenr) - 1)
Get #Filenr, , ByteArray()
Close #Filenr


' encriptamos

Call algoritmo(ByteArray(), key)


' escribimos el archivo destino

Filenr = FreeFile
Open DestFile For Binary As #Filenr
Put #Filenr, , ByteArray()
Close #Filenr

End Sub

' -----------------------------------
' Fin de código
' -----------------------------------

V

te pongo esto por no desanimarte al ver que nadie te contesta, pero colega, que mierdas es eso?

A

Un algoritmo que codifica/decodifica ficheros hecho en Visual Basic.

KaTaWn

Pos debido a mis poquisimos conocimientos sobre software me he quedado igual, con esta cara :-/

Aunque con la cantidad de garabatos que hay ahi debe estar muy currado. Enhorabuena :)

A

Basicamente es un método de seguridad para coger un archivo y codificarlo de forma que si el que quiere leer el archivo no tiene la clave, no puede leerlo.

V

bisual vasic es facil o dificil de aprender? una vez ice un addon para msn xDDD
de dond se desarga o algo xD y manuales

StreaM

Lo que si es facil es aprender a escribirlo </malote off>

Ahora enserio xD es para mi el lenguaje mas sencillo, pero tambien un poco limitado a la hora de hacer complejidades con el codigo, pero puedes hacer maravillas con este codigo..

Saludos

EDITADO: porcierto, muy buen trabajo :)

A

Es fácil de aprender y suele gustar bastante, porque se hacen aplicaciones muy rápido. Eso sí, es mucho menos potente que Visual C++ por ejemplo y también más lento.
Puedes bajarte la versión de Visual Studio para estudiantes de la web de Microsoft. (es gratuita)

Gracias StreaM. :-)

A

Para que podais ver qué hace exactamente el código he hecho un pequeño programa que lo usa como base para codificar archivos. Es muy fácil de usar, primero pregunta el archivo a codificar/decodificar, luego la clave y por último donde guardar el archivo ya codificado/decodificado.

Link: http://garabatos.sytes.net/download/encriptador.zip
(1,2 Mb - Incluye código fuente VB6)

V

No me gusta pedir esto pero esq no lo encuentro:

Ponme el link de descarga del Visual Studio que no lo encuentro en microsoft.com

A

http://lab.msdn.microsoft.com/express/

StreaM

#9 No va la descarga :S

A

Intentaré subirlo a otra parte, mi ADSL falla más que una escopeta de feria.
Lo teneis en yousendit:
http://s46.yousendit.com/d.aspx?id=2O7DA55HN19OG1NWP66XQURMNV

erdanblo

Ahaha, asi si puedo opinar.

Hombre no se, yo siempre que he hecho esto ha sido con lo de agregar contraseña en los archivos zip de windows y comparandolo, el tuyo es un poco más lento.

Además con un archivo de varios megas me ha petado y uno de 5kb ha tardado como 10 segundos en encriptarlo, pero bueno, su función parece que la cumple :p, ta way.

A

Visual Basic es bastante lento y tarda en encriptar. Windows creo que lo hace por API, por eso es tan rápido. Conste que aún siendo lento, es más rápido que blowfish o DES (partiendo de que los tres estén implementados en VB). A ver si aprendo a hacerlo en perl o C para ver la diferencia real de velocidad.

Usuarios habituales

  • Archville
  • erdanblo
  • StreaM
  • villodre
  • KaTaWn