Saludos
He estado practikando algo cn VB NET y logre modificar los bytes de un archivo por los que yo quise
(&HFF a todos los bytes del archivo, despues lo elimino http://www.elguille.info/colabora/2008/lobosoft_Borrado_Seguro.htm)
bueno pues con ese metodo logro borrar un archivo de manera segura, sobreEscribiendo el valor que tiene por otro y despues eliminandolo.
Lo que yo busko es cifrar el archivo
Por ejemplo
Obtener los Bytes de el archivo ciframe.txt
Luego a esos agregarle o editarle algunos para que de esa manera el archivo quede distinto
Pero despues (mediante el programa mismo) permitir volver a leerloen su estado original
Por donde puedo empezar
Al principio parece del tema parece que lo que quieres hacer es una utilidad para borrado seguro de datos pero luego me confundes con ese "Por Ejemplo"
"Obtener los Bytes de el archivo ciframe.txt
Luego a esos agregarle o editarle algunos para que de esa manera el archivo quede distinto
Pero despues (mediante el programa mismo) permitir volver a leerloen su estado original"
Si estás borrando los datos de forma segura se supone que es para no recuperarlos jamás entonces por qué dices?:
"Pero despues (mediante el programa mismo) permitir volver a leerloen su estado original"
Cita de: Keyen Night en 4 Agosto 2011, 05:02 AM
Si estás borrando los datos de forma seguro se supone que es para no recuperar los jamás entonces por que dices:
"Pero despues (mediante el programa mismo) permitir volver a leerloen su estado original"
si , mira estaba haciendo la aplikacion para un borrado seguro (lo cual ya lo hize),
pero luego pense que si pudiera cambiar los bytes de un archivo (sabiendo el orden de estos)
Podria cifrarlo
http://en.pudn.com/downloads82/sourcecode/windows/dotnet/detail316414_en.html
bueno pero para no confundirlos mas, lo que quiero lograr es leer los bytes del archivo uno por uno (hasta hora se obtener la cantidad de bytes por FileInfo (http://msdn.microsoft.com/es-es/library/system.io.fileinfo.aspx))
Entiendo usa Rijndael, AES o cualquiera de estos algorítmos, las clases ya están hechas en System.Security.Cryptography y todos funcionan igual, la forma de leer los archivos byte a byte o en array de byte() es System.IO.Stream Aquí te traigo un ejemplo de una función de la Clase Rijndael que hice cuando la necesite:
Este es un ejemplo muy básico tendrás que editarlo un poco porque yo me salte el vector de inicialización usando el MD5 de la llave y otras configuraciones las deje por defecto, te coloco el código como ejemplo porque lo tengo a la mano pero al menos tomate la molestía de ver como funciona :silbar:
#Region " Algoritmo Rijndael "
Public Function MD5(ByVal InputStr As String) As String
Dim MD5_Hasher As Cryptography.MD5 = Cryptography.MD5.Create()
Dim [DATA] As Byte() = MD5_Hasher.ComputeHash(Encoding.Default.GetBytes(InputStr))
Dim StrBuild As New StringBuilder()
For x As Integer = 0 To ([DATA].Length - 1)
StrBuild.Append([DATA](x).ToString("x2"))
Next
Return StrBuild.ToString()
End Function
Public Enum RijndaelAction
Crypt
Decrypt
End Enum
Public Function Rijndael(ByVal [Data] As Byte(), ByVal Key As Byte(), ByVal Action As RijndaelAction) As Byte()
Rijndael = New Byte() {}
Dim R As [Rijndael] = Cryptography.Rijndael.Create
With Encoding.Default
R.Key = Key
R.IV = .GetBytes(MD5(.GetString(R.Key)).Substring(0, 16))
Dim ResultStream As New MemoryStream
Dim CryptStream As CryptoStream = Nothing
Select Case Action
Case RijndaelAction.Crypt
CryptStream = New CryptoStream(ResultStream, R.CreateEncryptor, CryptoStreamMode.Write)
Case RijndaelAction.Decrypt
CryptStream = New CryptoStream(ResultStream, R.CreateDecryptor, CryptoStreamMode.Write)
End Select
CryptStream.Write([Data], 0, [Data].Length)
CryptStream.FlushFinalBlock()
Return ResultStream.ToArray
End With
End Function
#End Region
Mucissimas gracias por la molestia que te tomaste en ayudarme
el codigo lo estoy estudiando.