Inicio > Foros
Resultados 1 al 24 de 24
Tema: Ayuda con Visual Basic
-
24/03/2006, 15:27Invitado
Ayuda con Visual Basic
hola,, necesitaria hacer un programa en VB para codificar pequeños archivos de texto de modo que queden modificados en el disco duro y ya nadie pueda leerlos a menos que los decodifiquemos con el mismo programa. Es decir es un programa de encriptacion... la clave puede ser cualquiera y el metodo tambien siendo efectivo pero que no sea muy complicado
osea no se si me he explicado, un programa que modifique archivos de texto de forma que si los abres cualquier persona ya no se entienda nada de lo que pone, a menos que volvamos a decodificarlos
agradeceria cualquier respuesta,,, es importante :roll:
-
24/03/2006, 17:46Usuario registrado CVtxakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Googlea un poquito y enseguida encontrarás ejemplos de código de cómo hacer lo que quieres. Yo tengo alguno guardado por ahí, en el disco duro externo, pero necesitaría tres meses para encontrarlo.
-
24/03/2006, 18:27Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
hola!
el problema que comentas es totalmente matemático, y por tanto su solución, también. Hay muchas formas de encriptar un archivo, pero te voy a dar una especialmente sencilla y efectiva.
Se trata de utilizar el operador lógico XOR (O exclusivo)
Se basa en lo siguiente: (te lo pongo en binario aunque igualmente podría hacerse en términos de falso o verdadero)
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
es decir, es igual que el OR salvo en caso de ser verdaderas las dos expresiones, que el resultado es falso
y qué tiene esto de especial? pues muy sencillo: aplicando dos veces consecutivas este operador se vuelve a obtener el número de partida, y me explico con un ejemplo:
57 xor 69 = 124 y ahora...
¡¡ 124 xor 69 = 57 !!
es decir, el 69 en este caso (puedes elegir CUALQUIERA) funciona como clave para la encriptación
veámoslo en binario: a 57 le "xoreamos" con 69
00111001 (57)
01000101 (69)
_______________
01111100 = 124
ahora al 124 le xoreamos nuevamente con nuestra clave, el 69
01111100 (124)
01000101 (69)
_______________
00111001 ¡¡¡que vuelve a ser el 57!!!
y claro, si tú a alguien le dices "124" (número encriptado) no puede saber que el original era el "57" a menos que sepa la clave (69)
Y esto es lo más básico. El resto es entender que a cada carácter de un texto le corresponde un número binario (entre 0 y 11111111) (en decimal es entre 0 y 255), y programar, que a la hora de la verdad es lo más sencillo
la parte fundamental del programa (colocada por ejemplo en un CommandButton) es esta:
Private Sub Codificar_Click()
Dim f As Long
Open archivo For Binary As #1
For f = 1 To LOF(1)
Put #1, Loc(1), Chr$(Asc(Input$(1, #1)) Xor 69)
Next f
Close #1
End Suby listo... aplicando el programa una vez, el archivo queda desconocido e ilegible. Aplicándolo por segunda vez, el archivo queda IDENTICO al originalComentarios:
1- El programa abre el archivo, va tomando uno por uno todos sus caracteres, xoreándolos con 69 y volviéndolos a escribir en la misma posición...
2- archivo debe ser una variable String previamente definida, y contener la ruta exacta del archivo a codificar. También se puede poner directamente "C:\archivo.txt" (por ejemplo)
3- LOF(1) significa longitud del archivo abierto como #1
4- LOC(1) es la posición actual dentro del archivo abierto como #1
5. La línea que comienza con el Put es la que lee un caracter (input$), lo "xorea" con 69 (o el número que quieras) y lo vuelve a escribir en la misma posición (put #1, loc(1)...)
Mientras no le digas a nadie la clave (no tiene por qué ser 69, elige cualquiera entre 0 y 255, bueno, menos el cero que lo dejaría igual), ni el método utilizado, no es fácil descodificarlo. Y si quieres un método más complejo podríamos hacer una clave variable por medio de una función que dependa de la posición (LOC), es decir, utilizar una clave distinta para cada letra del texto!!!! (eso no lo descodificaría NADIE) pero eso ya es mucho (aunque es sencillo) y supongo que te sirve con esto...
todo esto es de mi cosecha, no lo he googleado... aunque supongo que por ahí puedas encontrar más cosas
Lo realmente bueno de este programa es que PODEMOS CODIFICAR CUALQUIER COSA, y no solo un texto (fíjate que el archivo lo abrimos en binario). Por ejemplo una foto que no queremos que nadie vea, le aplicamos el programa y quedaría ilegible por completo, y al volver a aplicarlo quedaría la foto tal y como la teníamos al principio. Por tanto es un programa tan útil como sencillo.
luego sólo habría que ponerle una interfaz sencilla, una ventana donde aparezcan las unidades de disco, los directorios, y los archivos, para que podamos elegir uno y darle al botón codificar/descodificar, pero esto ya es sencillo de hacer en visual basic
espero que te sirva, un saludo!
-
25/03/2006, 05:28Usuario registrado CVPepeC
- Fecha de ingreso
- 02 ago, 05
- Mensajes
- 267
weno basicamente es aplicar una funcion que dependa de una contraseña a un string... aunke tb lo puedes hacer sin contraseña... cada letra tiene asignado un codigo ascii si a ese numero le aplicas cualquier funcion (que puedas invertir para luego descodificar) tienes un ascii codificado... dpd de lo seguro ke kieras ke sea la encryptacion usas una funcion mas compleja o otra
-
25/03/2006, 12:33Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
bueno, evidentemente ese método es correcto, pero aclaro que no es tan sencillo encontrar una función con esas características, i.e., inyectiva y que se pueda dar la vuelta, es decir, biyectiva, y sobre todo, que la imagen no se salga del rango 0...255
Iniciado por PepeC
cada letra tiene asignado un codigo ascii si a ese numero le aplicas cualquier funcion (que puedas invertir para luego descodificar) tienes un ascii codificado...
Profundizando un poco más, a cada número entre 0 y 255 le ha de corresponder otro número entre 0 y 255 de forma única... Hay muchas formas de hacerlo, exactamente 256! formas (que son las permutaciones de 256 elementos), aunque muchas de ellas no son para nada eficaces
Por tanto el método que le he dado, mediante Xor, es mucho más práctico y limpio, porque es una función biyectiva entre los conjuntos {0,1,...,255} y el mismo.
La otra posibilidad que comenté (muchísimo más potente) consiste en codificar cada carácter de la cadena con una función distinta, dependiendo de su posición. Es decir, para n=1 tenemos una función, para n=2 otra, para n=3 otra, etc. Se pueden utilizar clases de restos módulo 256, y tendríamos un total de 256 funciones distintas a aplicar, que no está nada mal. (pueden ser 256 "xor" distintos)
Por otro lado, un intento fallido sería aplicar a los números entre 0 y 255 una función cualquiera (compleja), y al resultado hacerle la parte entera y luego dividirlo entre 256 y quedarnos con el resto, para así tener un número entre 0 y 255 nuevamente... el problema es que en ese caso no se podría invertir el proceso, y por tanto no vale para nada
en resumen, hay muchísimas formas de hacerlo y mucha teoría detrás, pero un modo sencillo y eficaz (a nivel doméstico) es el que expuse ayer
si necesitas algo más fuerte lo hacemos, cambiando de función dependiendo de f (según el programa f es una variable Long que recorre todas las posisiones del archivo) y complicando un poquito el programa
por ejemplo podríamos hacer un Xor en lugar de siempre con 69, con el resto de dividir f entre 256, esto es:
resto = f - 256 * Int (f / 256)
y quedaría así:
Put #1, Loc(1), Chr$(Asc(Input$(1, #1)) Xor resto)
o le hacemos una traslación a f antes de dividirlo, por ejemplo f+113, i.e.
resto = (f+113) - 256 * Int ((f+113) / 256)
más sencillo imposible... hay muchas formas eficientes de hacerlo, elige tú mismo
saludos
-
26/03/2006, 22:04Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
te pongo una captura para que veas un modo sencillo y práctico de organizar el programa

consiste simplemente en elegir un archivo y darle al botón codificar/descodificar
por supuesto el programa debe pedirte una contraseña al arrancar...
acuérdate, eso sí, de cambiar el "caption" del botón para que mientras está ocupado ponga "Procesando" en lugar de "codificar/descodificar" y por supuesto le pones la propiedad enabled en false para que nadie pueda pulsarlo mientras está trabajando (aunque para archivos de texto y pequeñas fotos el proceso es instantáneo)
cuéntame cómo te fue
saludos
-
27/03/2006, 18:08Usuario registrado CVtxakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Sabía que en alguna parte de mis marcadores andaba. Esto puede resultaros útil: http://www.mvps.org/vexpert/articles/vbEncrypt.htm
-
27/03/2006, 22:52Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
hola
decir que me he mirado con atención los dos métodos de encriptación sugeridos en el link de txakurra, y las pegas y los fallos de programación encontrados han sido varios y de gravedad. Pero vamos paso a paso.
Primer método (el llamado Modelo EncryptionString)
primero comentar que me parece un buen método siempre que la clave sea larga. Lo que hace es codificar nuestro archivo sumándole a cada carácter el correspondiente de una segunda cadena de texto, que es precisamente la clave. Cuando se terminen las letras de la clave, vuelve a retomarla desde el principio. Por supuesto en muchos casos el resultado pasará de 255 (pues estamos sumando dos bytes), y como esto no sería un byte válido, lo que hace el señor del programa es restarle 255. Esto matemáticamente es una chapuza. Lo correcto sería que en cuanto la suma dé como resultado 256, volvemos al 0, ¡pero no!, 256-255=1. Lo dicho, una chapuza difícil de entender
Lo correcto por tanto es cambiar el programa y restar 256, y no 255. En caso de no hacerlo el programa no funcionaría bien. Y el porqué lo pongo en un quote, es arduo de leer porque necesita entender por completo el funcionamiento del programa, y no aporta demasido al post, lo dejo a la elección de cada uno
Por tanto habría que sumar/restar 256 en lugar de 255 y todo iría bienPongamos el caso de que el código ascii del texto fuera 255 y el ascii de la clave fuera 1. En dicho caso 255+1=256, por tanto nos pasamos, y según el espabilado que hizo el programa, le restamos 255, resultando 1. El problema es que ahora el programa no sabría darle la vuelta y volver al valor original, 255. Porque para darle la vuelta lo que hace es comprobar con anterioridad si al resultado hubo que restarle 255, para volverlo a sumar. Pero en este caso la comprobación no funciona, porque TextASCIIS(i) - UserKeyASCIIS(j) = 1 - 1 =0 y como no es MENOR QUE CERO (es igual, no menor), el programa consideraría que no le restó nada y dejaría el valor en 0. Pero es que el valor original era 255 y no cero, por tanto el archivo de salida no sería ya nunca igual al original, lo cual es una aberrante chapuza, y aunque a un texto no le afecta cambiar los 255 por ceros (porque no son caracteres de escritura) si codificamos y descodificamos un programa podría dejar de funcionar
Ya digo que la valoración del método es buena, y tiene una ventaja con respecto a los métodos que di hace un par de días, y es que la codificación no es siempre igual sino que depende de una clave que puede decirse de una persona a otra, y eso es interesante.
Desventajas: como pongas la clave mal, no te lo descodifica, sino que te lo vuelve a codificar con una clave distinta!! (codificación sobre codificación)
Otra desventaja, requiere bastante más tiempo de proceso que el método que yo di, y eso se notaría mucho para archivos grandes.
Segundo método (el llamado Modelo ChrTran)
En primer lugar decir que nos lo quieren pintar como algo super potente y no lo es tanto (en términos de seguridad es bastante mejor el anterior si la clave es larga). El funcionamiento es el siguiente:
Utiliza dos cadenas de longitud 256 donde estén todos los caracteres del código ascii. Una de ellas es aleatoria, la otra puede ser pública. Entonces toma el primer carácter del texto a codificar. Mira el lugar que ocupa en una de las cadenas y lo sustituye por el carácter correspondiente en la segunda cadena.
La pega de esto es obvia: Si por ejemplo el carácter "A" en la primera cadena corresponde al carácter "B" en la segunda, al codificar cambiaría todas las letras "A" del texto por una "B". Y evidentemente esto no es lo mejor del mundo. Las posibilidades de que alguien experimentado lo descifre son muchas, aunque ahí hable de 256! combinaciones posibles, que eso es la teoría, pero luego la práctica es muy distinta porque existen reglas de escritura, de ortografía, etc, que limitan muchísimo esas posibilidades.
Por tanto el método me parece claramente PEOR que el que di hace unos días en segundo lugar, es decir el de
resto = (f+113) - 256 * Int ((f+113) / 256)
Put #1, Loc(1), Chr$(Asc(Input$(1, #1)) Xor resto)
La ventaja de este metodo es que codifica cada carácter con otro distinto en función de la posición que ocupa!!!! Es decir, la primera A podría ser cambiada por una "F" pero la siguiente "A" por otro carácter cualquiera en el rango 0-255
Por si fuera poco, mi programa utiliza nuevamente muchísimo menos tiempo de proceso, porque no tiene que andar buscando caracteres dentro de cadenas, y repetirlo para CADA carácter, con el tiempo que eso supone...
Otra ventaja clara de mi método es que utiliza el mismo código de programación para encriptar y para desencriptar, exactamente el mismo!!
El problema es que muchas veces la gente que se pone a hacer estos programas carecen de la base matemática necesaria para hacerlo con eficiencia, porque este tema es estrictamente matemático, y hacerlo sin utilizar funciones (para codificar de forma distinta cada carácter dependiendo de su posición) me parece un grave error
Lo bueno es que estamos haciendo un listado de métodos posibles, ya van 4 muy distintos...
Saludos
-
28/03/2006, 00:51Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
He hecho el programa según el método de la codificación dependiente de una clave (Modelo EncryptionString), y el resultado ha sido muy bueno. Es posible codificar un archivo incluso mediante varias claves distintas, por ejemplo primero "perro", luego "gato", luego "calendario", y tendríamos una codificación triple!!, y para descodificarlo es necesario hacerlo en pasos y saberse TODAS las claves, aunque pueden ser introducidas en cualquier orden
El código totalmente modificado y corregido lo pongo aquí (solo en lo referente a los botones Codificar y Descodificar, si alguien quiere el resto sólo tiene que pedirlo...) También pongo una foto de una posible organización del programa
Aclaraciones:Private Sub Codificar_Click()
Dim f As Long
Dim g As Integer
Dim clav As String
Dim t As Integer
clav = clave.Text
g = 1
If Len(clav) = 0 Then MsgBox "Introduce la clave!!": Exit Sub
Codificar.Enabled = False
Descodificar.Enabled = False
Codificar.Caption = "Procesando..."
Open nombre For Binary As #1
For f = 1 To LOF(1)
t = Asc(Input$(1, #1)) + Asc(Mid$(clav, g, 1))
If t > 255 Then t = t - 256
Put #1, Loc(1), Chr$(t)
g = g + 1
If g > Len(clave) Then g = 1
Next f
Close #1
Codificar.Caption = "Codificar"
Codificar.Enabled = True
Descodificar.Enabled = True
File1.SetFocus
MsgBox "Hecho!!"
End Sub
__________________________________________________
Private Sub Descodificar_Click()
Dim f As Long
Dim g As Integer
Dim clav As String
Dim t As Integer
clav = clave.Text
g = 1
If Len(clav) = 0 Then MsgBox "Introduce la clave!!": Exit Sub
Descodificar.Enabled = False
Codificar.Enabled = False
Descodificar.Caption = "Procesando..."
Open nombre For Binary As #1
For f = 1 To LOF(1)
t = Asc(Input$(1, #1)) - Asc(Mid$(clav, g, 1))
If t < 0 Then t = t + 256
Put #1, Loc(1), Chr$(t)
g = g + 1
If g > Len(clave) Then g = 1
Next f
Close #1
Descodificar.Caption = "Descodificar"
Descodificar.Enabled = True
Codificar.Enabled = True
File1.SetFocus
MsgBox "Hecho!!"
End Sub
"nombre" es la ruta completa del archivo a codificar
"f" va tomando todas las posiciones del archivo que abrimos para codificarlo
"g" va tomando todas las posiciones en la palabra clave. Cuando termina vuelve a empezar
"clav" es un string conteniendo la palabra clave, tomada del textBox llamado clave
"t" es la variable temporal donde almacena la suma o resta de los valores ascii de los caracteres
Y ahí va la foto:

Saludos
-
28/03/2006, 01:57Usuario registrado CVtxakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Zorro, creo firmemente que deberías dedicarte a la seguridad de datos en hospitales, cajas de ahorros/bancos, etc. Se ve que sabes mucho del tema de cifrado. Yo VB lo uso para otros menesteres (en los que entra el modding) ya que para proteger un par de archivos medio importantes uso el SecureDoc (programilla freeware de MSI); no son secretos de estado.
He de decir que una vez sí recurrí al método de encriptación para codificar los mensajes de un "chat" entre dos ordenadores vía puerto serie.
¡Ah! Se me olvidaba. También creé un codificador de texto. Lo que hacía era convertir cada caracter (no están incluidos todos) en un número de tres cifras. Representa un cifrado bajo, ya que siempre usa el mismo sistema sin cambiar las claves (si, por ejemplo, a la A mayúscula le toca el 101, siempre le tocará ese número). Lo ideal sería modificarlo para tener que recurrir a una tabla de codificación/decodificación (un archivo externo con las claves. Sin ese archivo sería imposible descifrar el contenido o el resultado sería ilegible).
Yo tengo por ahí un ejemplo basado en el EncryptionString, pero creo que no es exactamente igual. Intentaré localizarlo en mis 10 GB externos.
-
28/03/2006, 02:13Usuario registrado CVtxakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Llevo un calor encima y eso que tan solo tengo 25,5 ºC en la habitación...
Bueno, ya he encontrado las funciones de codificación y decodificación que tenía de un ejemplo. No me preguntéis de dónde los saqué porque mi memoria no da para tanto.
Las tenía metidas en un módulo para facilitarme la cosa si quería utilizarlas en más de un proyecto a la vez.Código:Public Function EncryptINI$(Strg$, Password$) Dim b$, S$, i As Long, j As Long Dim A1 As Long, A2 As Long, A3 As Long, p$ j = 1 For i = 1 To Len(Password$) p$ = p$ & Asc(Mid$(Password$, i, 1)) Next For i = 1 To Len(Strg$) A1 = Asc(Mid$(p$, j, 1)) j = j + 1: If j > Len(p$) Then j = 1 A2 = Asc(Mid$(Strg$, i, 1)) A3 = A1 Xor A2 b$ = Hex$(A3) If Len(b$) < 2 Then b$ = "0" + b$ S$ = S$ + b$ Next EncryptINI$ = S$ End Function Public Function DecryptINI$(Strg$, Password$) Dim b$, S$, i As Long, j As Long Dim A1 As Long, A2 As Long, A3 As Long, p$ j = 1 For i = 1 To Len(Password$) p$ = p$ & Asc(Mid$(Password$, i, 1)) Next For i = 1 To Len(Strg$) Step 2 A1 = Asc(Mid$(p$, j, 1)) j = j + 1: If j > Len(p$) Then j = 1 b$ = Mid$(Strg$, i, 2) A3 = Val("&H" + b$) A2 = A1 Xor A3 S$ = S$ + Chr$(A2) Next DecryptINI$ = S$ End Function
-
28/03/2006, 15:11Invitado
Hey ZORRO, muchiiiiisimas gracias,, les dire que ayer me pase la tarde mirando todo lo escrito que es mucho y no consegui casi nada pq me cuesta un poco entenderlo pero esta mañana por fin he logrado hacer el programa y sobre todo entenderlo y me funciona de p. m.
use el ultimo modo que pusiste ayer pq la forma de combinar el archivo con una password me parece la mejor,, eso si no he logrado conectar las ventanas de directorios---unidades--archivos pero finalmente lo hice poniendo una ventana de ruta (text box) y escribiendo "c:\texto.txt".Tambien he usado el metodo XOR que dijiste al principio y es un programa muyyy sencillo y muyyyyy rapido codificando fotos y otras cosas, no se como darte las gracias pq sinceramente es mucho mas de lo que esperaba y lo habia preguntado en otros foros y nada,,, txakurra muchas gracias a ti tambien por las ideas y la participacion
tengo muchas mas dudas pero no se si es abusar,, por ej. estoy haciendo un mini juego y necesito incorporarle algunos sonidos (onda midi mp3). probe insertando reproductor multimedia pero me parece mucho y no lo controlo bien, quisiera algo con alguna funcion que haga play a los sonidos sin mas leches
tambien intento hacer un mini programa de dibujo similar al paint,, si me podeis decir como usar colores de forma potente,, yo dibujo circulos sin mas pero de ahi no paso y como se puede lograr que pinte justo al apretar el raton y no pinte cuando sueltes y ¿¿que borre con el boton derecho??
muchiiiisimas gracias y salu2 :wink:
-
28/03/2006, 18:42Usuario registrado CVtxakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Hice un paint en un proyecto multifunción (un programa para varias cosas). A ver si compilo el código del paint a parte y lo posteo.
Iniciado por Petete
tambien intento hacer un mini programa de dibujo similar al paint,, si me podeis decir como usar colores de forma potente,, yo dibujo circulos sin mas pero de ahi no paso y como se puede lograr que pinte justo al apretar el raton y no pinte cuando sueltes y ¿¿que borre con el boton derecho??
-
28/03/2006, 20:52Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
Petete, me alegra que lo hayas conseguido!! Nosotros encantados de echarte una mano
pues hombre, me dedico a las matemáticas, que es lo que me gusta, y eso podría abarcar muchos campos distintos. También los ordenadores, la música, el ajedrez,... Son demasiadas cosas como para tener tiempo para todo, desgraciadamente
Iniciado por txakurra
Zorro, creo firmemente que deberías dedicarte a la seguridad de datos en hospitales, cajas de ahorros/bancos, etc. Se ve que sabes mucho del tema de cifrado
Pero en cualquier caso haré una reflexión: para programar, como para tantas otras cosas es fundamental saber matemáticas. Hay mucha gente que intenta hacer un programa y llegado un momento necesita calcular la distancia entre un punto y una recta, o saber si un punto está dentro de una circunferencia, y ahí comienzan sus verdaderas dificultades por falta de una buena base matemática.
Dejando de lado el tema del cifrado, que ya parece resuelto, se nos plantean dos nuevos problemillas, que trataremos de resolver en post sucesivos
No sé a cuánta gente de la web le interesará esto de la programación en visual basic, pero se me ocurre abrir un nuevo hilo titulado "Ejemplos para iniciarse en Visual Basic" y según el apoyo que vaya teniendo, podemos ir añadiendo más programas
-
28/03/2006, 21:55Usuario registrado CVtxakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Petete, ya he despejado el código del ejemplo "paint". En cuanto pueda, dejo caer el enlace.
-
28/03/2006, 23:41Usuario registrado CVtxakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Petete, dejo el código fuente del programa en este otro hilo: http://www.hard-h2o.com/vertema/41435.html
-
16/11/2006, 00:52Usuario registradoslasho
- Fecha de ingreso
- 15 nov, 06
- Mensajes
- 4
El zorro estuve bien tu programa que encodea una imagen.
pero tengo un gran problema como lo puedo hacer con VB.NET???
trate de abrirlo y que me lo "actualizara" a codigo vb pero no funciona
podrias ayudarme?
-
16/11/2006, 01:08Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
espera a ver si alguien puede ayudarte, porque yo no me he metido nunca con el VB.Net ni tengo tiempo para investigarlo en este momento (estoy muy liado :wink: )
saludos
-
14/12/2006, 16:29Invitado
Codigo
hola Zorro, sabes he estado tratando de hacerlo en vb .net pero no hay caso con tu teoria de leer y escribir al mismo tiempo, imposible parece que al escribir escribe mas de 1 nose

bueno en fin el codigo fuente del ultimo que hicistes podrias ponerlo?
del que tiene el textbox del password
ya que baje el del link de este mismo hilo, pero el exe esta ok tiene
el textbox de la clave y los 2 botones pero las fuentes, tienen el antiguo
1 boton Codifica/descodifica y sin el textbox de la password
porfas.
y si alguien ha logrado hacerlo en VB .net plisssss posteen como
-
14/12/2006, 16:33Usuario registradoslasho
- Fecha de ingreso
- 15 nov, 06
- Mensajes
- 4
ups ahi si toy logeado
bueno la misma pregunta anteior.. plis HELP
-
14/12/2006, 17:33Usuario registradoslasho
- Fecha de ingreso
- 15 nov, 06
- Mensajes
- 4
EHhh logre solucionarlo
LOgre por fin hacerlo funcionar en vb .net les dejo el ejemplo. esta echo ala manera antigua que el Zorro publico. ahora falta agregarle la parte del password. pero ya funciona!!!
el ejemplo lo testee con un archivo .jpg y un .txt
resultando el encriptado y desencriptado Impecablemente *con la misma funcion*
saludos!
Código:Dim FS As New FileStream("c:\texto.txt", FileMode.Open, FileAccess.ReadWrite) Dim Buffer() As Byte ReDim Buffer(FS.Length - 1) FS.Read(Buffer, 0, Buffer.Length) For i As Int32 = 0 To Buffer.Length - 1 Buffer(i) = Buffer(i) Xor 69 Next FS.Position = 0 FS.Write(Buffer, 0, Buffer.Length) FS.Close() MsgBox("Listo")
-
14/12/2006, 22:43Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
Hola slasho. Me alegra que hayas conseguido hacer el programa en vb.net
Ahora a ver si consigues añadirle lo de la clave, que lo hace más interesante. Aquí te dejo el código fuente del programa que hice en su día
Por aquí estaremos para seguir comentando cosas y aportando ideas
http://es.geocities.com/alber137/codifica2.zip
espero que te sirva, ya me contarás, si no entiendes algo pregunta
un saludo
-
15/12/2006, 16:11Usuario registradoslasho
- Fecha de ingreso
- 15 nov, 06
- Mensajes
- 4
emm Con clave
Bueno en realidad el tema de agregarle un password no era tan complicado siguiendo de la base de "xorear" lo que se quiere encriptar con un numero y tomando la clave caracter por caracter sacando el codigo asc.
este codigo esta testeado en Vb .net el cual toma casi 3 segundos en
encriptar un archivo de imagen de 2,5 MB.
Comparado con el de Zorro que tomaba casi 10 o mas segundos en encriptar el mismo archivo.
yo creo que es debido a que este codigo toma en la variable Buffer()
todo el contenido del archivi y despues aplica la encriptacion y despues lo devuelve al archivo. Notese que buffer es un arreglo.
A diferencia del de Zorro, que lee y escribe al mismo tiempo. ocupando mucho recurso eso.
Esto no quiere decir que estoy desmereciendo el trabajo de Zorro, al contrario lo encontre MUY bueno ya que me ayudo muchisimo a entender el tema de la encriptacion, la BASE de como encriptar algo. muy bueno.
Saludos!
Código:Imports System.IO Dim FS As New FileStream("c:\texto.txt", FileMode.Open, FileAccess.ReadWrite) Dim Buffer() As Byte Dim clave As String Dim t As Integer clave = "clave123" ReDim Buffer(FS.Length - 1) FS.Read(Buffer, 0, Buffer.Length) t = 1 For i As Int32 = 0 To Buffer.Length - 1 If t > clave.Length Then t = 1 End If Buffer(i) = Buffer(i) Xor Asc(Mid(clave, t, 1)) t += 1 Next FS.Position = 0 FS.Write(Buffer, 0, Buffer.Length) FS.Close() MsgBox("Listo")
este codigo Encripta/desencripta
-
25/09/2008, 00:51Usuario registradoEMGA
- Fecha de ingreso
- 24 sep, 08
- Mensajes
- 1
Alguien podria ayudarme
nesecito cambiar este codigo de encriptado de vb6 a vb.net y no e podido.
y todo por que se no en el vb.net como se manejan los parametros asciis
osea mejor dicho por que parametros debo de cambiar todo lo diga (cualquier cosa)ASCIIS
este es el codigo
[code]
[color=green]
Imports System.IO
Public Class Form2
'Attribute VB_Name = "modENCRIPTAR"
Public Const ENCRYPT As Long = 1, DECRYPT As Long = 2
Public Function EncryptString(ByVal UserKey As String, ByVal e As System.EventArgs, ByVal Text As String, ByVal Action As Single) As String
Dim DefInt As Char
Chr(DefInt(A - Z))
Const ENCRYPT = 1, DECRYPT = 2
'-------------------------------------------------------------------------------------
' ORIGINAL rtn: ENCRYPTION
' Text to code: E N C R Y P T I O N
' ASCII CODES: 69 78 67 82 89 80 84 73 79 78
' ENCRYPTION STRING: K E Y K E Y K E Y K
' ASCII CODES: 75 69 89 75 69 89 75 69 89 75
' ADD ASCII CODES: 144 147 156 157 158 169 159 142 168 153
' TRANSLATE TO CHARACTERS:
Powered by vBulletin® Version 4.2.5
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.
Traducción por vBulletin Castellano Copyright © 2025.
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.
Traducción por vBulletin Castellano Copyright © 2025.
AutoLinker v1.3 by Poker Forum


