Test Foro de elhacker.net SMF 2.1

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 (python) [Seleccionar]
def rc4crypt(data, key):
    x = 0
    box = range(256)
    for i in range(256):
        x = (x + box[i] + ord(key[i % len(key)])) % 256
        box[i], box[x] = box[x], box[i]
    x = 0
    y = 0
    out = []
    for char in data:
        x = (x + 1) % 256
        y = (y + box[x]) % 256
        box[x], box[y] = box[y], box[x]
        out.append(chr(ord(char) ^ box[(box[x] + box[y]) % 256]))
   
    return ''.join(out)


f = open('Oiginal.txt', "r")
lines = f.readlines()
f.close()


f = open('Cifrado.txt', "w")
for line in lines:
    print line
   
    split=line.split("|")
    print split[4]
    line=line.replace(split[4],rc4crypt(split[4],"Hola"))
    print line
    f.write(line)
f.close()




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:
@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