Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: eolh652 en 27 Agosto 2013, 18:46 pm



Título: cifrar campo numérico en un archivo de texto
Publicado por: eolh652 en 27 Agosto 2013, 18:46 pm
Buen Día.

Antes que nada saludos a todos los miembros de este foro, espero puedan ayudarme con la siguente duda.

Tengo la labor de enmascarar/cifrar un campo en específico de un archivo de texto, por ejemplo resp_260813.log.

El archivo esta dividido en campos cuyo divisor es |. El campo que yo quiero cifrar es el 5. Por ejemplo

rdshj|fdkldlk|hfdhrh|994jd|4986830|fjfj|fdporei546|49459.

Yo unicamente quiero manipular(cifrar) el campo 5 cuyo contenido es 4986830.

Con awk ya pude imprimir ese campo con la instrucción awk 'BEGIN {FS="|"}; {print $5}' resp_260813.log.

Pero lo que quiero es que todo el archivo siga igual excepto ese campo, debido a que ese archivo se enviara por la red y ese campo no debe ser visible.

Espero puedan ayudarme a resolver este problema con el archivo mostrado, seguire trabajando en eso.

Muchas gracias, saludos a todos


Título: Re: cifrar campo numérico en un archivo de texto
Publicado por: Almapa en 30 Agosto 2013, 12:47 pm
Pero puede ser en cualquier lenguaje de scripting? El awk no lo he utilizado nunca...


Título: Re: cifrar campo numérico en un archivo de texto
Publicado por: eolh652 en 30 Agosto 2013, 16:11 pm
Saludos.

Muchas gracias por responder. Pues no necesariamente en awk, puede ser cualquier otro lenguaje de scripting(shell, perl, python).

Sigo investigando pero aun no queda la solución

Gracias


Título: Re: cifrar campo numérico en un archivo de texto
Publicado por: Danyfirex en 30 Agosto 2013, 17:10 pm
Puedes hacer algo así.


Código
  1. def rc4crypt(data, key):
  2.    x = 0
  3.    box = range(256)
  4.    for i in range(256):
  5.        x = (x + box[i] + ord(key[i % len(key)])) % 256
  6.        box[i], box[x] = box[x], box[i]
  7.    x = 0
  8.    y = 0
  9.    out = []
  10.    for char in data:
  11.        x = (x + 1) % 256
  12.        y = (y + box[x]) % 256
  13.        box[x], box[y] = box[y], box[x]
  14.        out.append(chr(ord(char) ^ box[(box[x] + box[y]) % 256]))
  15.  
  16.    return ''.join(out)
  17.  
  18.  
  19. f = open('Oiginal.txt', "r")
  20. lines = f.readlines()
  21. f.close()
  22.  
  23.  
  24. f = open('Cifrado.txt', "w")
  25. for line in lines:
  26.    print line
  27.  
  28.    split=line.split("|")
  29.    print split[4]
  30.    line=line.replace(split[4],rc4crypt(split[4],"Hola"))
  31.    print line
  32.    f.write(line)
  33. f.close()
  34.  
  35.  


saludos



Título: Re: cifrar campo numérico en un archivo de texto
Publicado por: Almapa en 3 Septiembre 2013, 17:39 pm
En batch podrías hacer algo parecido a esto:
Código:
@echo off

set var="rdshj|fdkldlk|hfdhrh|994jd|4986830|fjfj|fdporei546|49459"
set /p elemento=Posición del elemento a codificar

for /f "tokens=%elemento% delims=|" %%a in (%var%) do (call :cambio %%a)

:cambio
call set var=%%var:%1=eolh652%%
echo %var%
pause
exit