elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  cifrar txt y lectura solo con proyecto unicamente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: cifrar txt y lectura solo con proyecto unicamente  (Leído 1,104 veces)
cael1011

Desconectado Desconectado

Mensajes: 24


Ver Perfil
cifrar txt y lectura solo con proyecto unicamente
« en: 11 Enero 2017, 06:00 »

Alguien tiene una idea de cifrar un txt, que sea ilegible para cualquier editor de texto, pero legible para la lectura, en un texbox ? me gustaria saber como hago qeu el archivo no se pueda leer con editores externo solo desde la lectura de vb.net


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: cifrar txt y lectura solo con proyecto unicamente
« Respuesta #1 en: 15 Enero 2017, 09:28 »

Hola. Primero que nada, las preguntas sobre VisualBasic.NET van en el subforo de .NET, este lenguaje no tiene nada que ver con VisualBasic.

Para llevar a cabo lo que solicitas, hay múltiples formas, si son archivos de texto, poco tamaño, yo considero que te valdría con implementar cualquier metodología sincrónica o "método bloqueador" con un algoritmo de cifrado, y listo. Es decir, tu programa se encargaría de cifrar el archivo de texto para que sea ilegible al ojo humano (al menos para el usuario común que no sepa ni encender un PC), y cuando quieras leerlo simplemente desencriptas el contenido en memoria y lees el string resultante.

Para este ejemplo he utilizado la implementación de Microsoft del algoritmo criptográfico DES, si lo prefieres puedes utilizar cualquier otro de los disponibles en la librería de clases de .NET Framework.

Bien, primero desarrollamos el algoritmo de cifrado y desencriptación, los dividiremos en tres métodos distintos a los que he llamado "EncryptFile", "DecryptFile", "DecryptFileAsString":

Código
  1. Public Shared Sub EncryptFile(ByVal srcFilepath As String, ByVal dstFilepath As String, key As String)
  2.    If String.IsNullOrEmpty(key) Then
  3.        Throw New ArgumentNullException("key")
  4.        Exit Sub
  5.  
  6.    ElseIf (key.Length < 8) Then
  7.        ' DESCryptoServiceProvider needs a 64 bit key, so I fill the key string with dots until it has character length of 8.
  8.        key = key.Insert(key.Length, String.Join("", Enumerable.Repeat("."c, (8 - key.Length))))
  9.  
  10.    End If
  11.  
  12.    Using fsInput As New FileStream(srcFilepath, FileMode.Open, FileAccess.Read),
  13.          fsOutput As New FileStream(dstFilepath, FileMode.CreateNew, FileAccess.Write),
  14.          des As New DESCryptoServiceProvider() With {.Key = ASCIIEncoding.ASCII.GetBytes(key), .IV = .Key},
  15.          cryptoStream As New CryptoStream(fsOutput, des.CreateEncryptor(), CryptoStreamMode.Write)
  16.  
  17.        Dim rawData As Byte() = New Byte(CInt(fsInput.Length - 1)) {}
  18.        fsInput.Read(rawData, 0, rawData.Length)
  19.        cryptoStream.Write(rawData, 0, rawData.Length)
  20.    End Using
  21. End Sub
  22.  
  23. Public Shared Sub DecryptFile(srcFilepath As String, dstFilepath As String, key As String)
  24. Using fsWrite As New StreamWriter(dstFilepath)
  25.        fsWrite.Write(DecryptFileAsString(srcFilepath, key))
  26.        fsWrite.Flush()
  27.    End Using
  28. End Sub
  29.  
  30. Public Shared Function DecryptFileAsString(srcFilepath As String, key As String) As String
  31.    If String.IsNullOrEmpty(key) Then
  32.        Throw New ArgumentNullException("key")
  33.        Return Nothing
  34.  
  35.    ElseIf (key.Length < 8) Then
  36.        ' DESCryptoServiceProvider needs a 64 bit key, so I fill the key string with dots until it has character length of 8.
  37.        key = key.Insert(key.Length, String.Join("", Enumerable.Repeat("."c, (8 - key.Length))))
  38.  
  39.    End If
  40.  
  41.    Using des As New DESCryptoServiceProvider() With {.Key = ASCIIEncoding.ASCII.GetBytes(key), .IV = .Key}
  42.        Using fsRead As New FileStream(srcFilepath, FileMode.Open, FileAccess.Read),
  43.              cryptoStream As New CryptoStream(fsRead, des.CreateDecryptor(), CryptoStreamMode.Read),
  44.              srRead As New StreamReader(cryptoStream)
  45.  
  46.            Return srRead.ReadToEnd()
  47.        End Using
  48.    End Using
  49. End Function

La diferencia entre los métodos "DecryptFile" y "DecryptFileAsString" es que el primero descifra y escribe los datos en un archivo de destino, mientras que el otro simplemente descifra y devuelve los datos en un valor de retorno de tipo String.



Así pues, el algoritmo en tu programa lo puedes usar de la siguiente manera:

Código
  1. ' La clave única que este progama usará para cifrar y descifrar archivos.
  2. Private ReadOnly key As String = "MyKey"
  3.  
  4. ' Archivo de texto a cifrar:
  5. Dim srcFile As New FileInfo("C:\File.txt")
  6.  
  7. ' Archivo de texto a descifrar:
  8. Dim dstFile As New FileInfo(String.Format("{0}.dat", srcFile.FullName))
  9.  
  10. Try ' Comenzar la cifrado.
  11.    EncryptFile(srcFile.FullName, dstFile.FullName, key)
  12.    ' srcFile.Delete()
  13.  
  14. Catch ex As Exception
  15.    Throw
  16.  
  17. End Try
  18.  
  19. ' descifrar archivo de texto.
  20. Dim result As String = DecryptFileAsString(dstFile.FullName, key)
  21.  
  22. ' Mostrar el string descifrado en un TextBox.
  23. Me.TextBox1.Text = result



Si tenemos un archivo de texto en codificación UTF-8 (con BOM) con el siguiente contenido:
Código:
Hello World!

Y usando la clave "MyKey", entonces el algoritmo de cifrado generará esto:
Código:
M3bëëa(MÆ7]7¸wc

Y el algoritmo de desencriptación devolverá el texto original.


« Última modificación: 15 Enero 2017, 11:32 por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
foto lectura, y lectura veloz, scanning y otros metodos de lectura rapida....
Foro Libre
Kase 3 11,061 Último mensaje 4 Febrero 2014, 08:47
por camilo_
se puede cifrar malware tu solo?
Análisis y Diseño de Malware
str0nghack 4 4,431 Último mensaje 22 Marzo 2017, 17:37
por TheIllusionist
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines