Encriptacion Xor ¿como se descifra?

Iniciado por lessionone, 17 Abril 2012, 16:06 PM

0 Miembros y 1 Visitante están viendo este tema.

lessionone

Hola buenas, he cogido la idea de cifrar una cadena con xor pero creo que no se descifrar la cadena porque no sale igual. Pongo el codigo:
'LEEMOS UN EJECUTABLE
       Dim cadenaarellenar As String
       Dim canallibre As Integer
       canallibre = FreeFile()
       FileOpen(canallibre, "C:\Users\Administrador\Desktop\b.exe", OpenMode.Binary)
       cadenaarellenar = Space(LOF(canallibre))
       FileGet(canallibre, cadenaarellenar)
       FileClose(canallibre)

'GUARDAMOS EL EJECUTABLE EN UN ARRAY MEZCLADO CON LA PALABRA "HOLA"
'CADA VEZ QUE CADENA1 LE TOCA LA ULTIMA POSICION EN EL MID PUES VUELVE A LEER LA PRIMERA POSICION

       Dim z As Char = ""
       Dim x As Char = ""
       Dim contador As Integer = 0
       Dim bitconbit As Integer
       Dim cadena1 = "hola"
       Dim resultado As Integer = 0
       Dim contadormultiplicacion As Integer = 1
       Dim contadorcaracteresz As Integer = 0
       Dim matriz(16383) As Integer 'el tamaño de bytes del archivo es de 16384
       Dim indice As Integer = 0
       For contadorA = 1 To 16384

           resultado = Len(cadena1) * contadormultiplicacion

           If contador = resultado + 1 Then
               contadormultiplicacion = contadormultiplicacion + 1
               contadorcaracteresz = 0
           End If
           contador = contador + 1
           contadorcaracteresz = contadorcaracteresz + 1
           z = Mid("hola", contadorcaracteresz, 1)
           x = Mid(cadenaarellenar, contadorA, 1)
           Dim ascii1 As Integer = Asc(z)
           Dim ascci2 As Integer = Asc(x)
           byteconbyte = (ascii1 Xor ascci2) ' de aqui sale un entero
           matriz(indice) = byteconbyte
           indice = indice + 1

      Next

'
' CREAMOS EL ARCHIVO "AS.EXE" Y LO RELLENAMOS CON EL ARRAY ANTERIOR        
Dim rutadelarchivonuevo As String = "C:\Users\Administrador\Desktop\as.exe"
       FileOpen(1, rutadelarchivonuevo, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
       FilePut(1, matriz)
       FileClose(1)
       MsgBox("Realizado")
   End Sub


Me gustaria saber si esta bien echo esto para luego poneros lo que he echo para desencriptarlo pero hay algo que esta mal en este codigo o a la hora de desencriptarlo porque no sale.
Gracias adelantadas por parar a mirar el codigo

Keyen Night

Te invito a usar FileStream, StreamWriter y StreamReader. Estas clases pueden leer el archivo byte a byte, XOR tiene la particularidad de que cumple su misma función inversa, de tal modo que:

Código (VB.NET) [Seleccionar]

5 XOR 10 = 15

15 XOR 5 = 10
15 XOR 10 = 5
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...