FoxPro/Visual FoxPro - como puedo encriptar un archivo de texto con vfp 6

 
Vista:

como puedo encriptar un archivo de texto con vfp 6

Publicado por johan (5 intervenciones) el 14/12/2004 22:37:04
Hola a todos estoy tratando de buscar la forma de encriptar archivos de texto con visual foxpro 6.0 les agradezco la colaboración que me puedan brindar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como puedo encriptar un archivo de texto con vf

Publicado por juan pablo (16 intervenciones) el 23/12/2004 21:12:23
hola, la mejor manera es tomar el texto en un variable y hacer un codigo para cambiar a por un simbolo o numero , esto se hace por medio de una formula matematica y tu le puede aplicar por medio asccii o por medio chr

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Para que inventar la pólvora toma esto

Publicado por Nilo Cardozo (3 intervenciones) el 19/01/2005 23:53:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
FUNCTION Encripta
 LPARAMETER teXto
 LOCAL clAve, teXtoenc, j, leTra
 clave = ')&H%$V1#@^+=?/><:MN*-'
 teXtoenc = SPACE(0)
 c = 1
 FOR j = 1 TO LEN(teXto)
      leTra = MOD(ASC(SUBSTR(teXto, j, 1))+ASC(SUBSTR(clAve, c, 1)), 256)
      teXtoenc = teXtoenc+CHR(leTra)
      c = c+1
      IF c>=LEN(clAve)
           c = 1
      ENDIF
 ENDFOR
 RETURN teXtoenc
ENDFUNC
*
FUNCTION Desencripta
 LPARAMETER teXtoenc
 LOCAL teXto, c, j, clAve
 clave = ')&H%$V1#@^+=?/><:MN*-'
 teXto = SPACE(0)
 c = 1
 FOR j = 1 TO LEN(teXtoenc)
      leTra = MOD((256+ASC(SUBSTR(teXtoenc, j, 1)))-ASC(SUBSTR(clAve, c,  ;
              1)), 256)
      c = c+1
      IF c>=LEN(clAve)
           c = 1
      ENDIF
      teXto = teXto+CHR(leTra)
 ENDFOR
 RETURN teXto
ENDFUNC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Para que inventar la pólvora toma esto

Publicado por Americo (2 intervenciones) el 21/08/2013 01:56:36
Estupendo aporte, justo lo que estaba buscando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Para que inventar la pólvora toma esto

Publicado por Edwin (1 intervención) el 04/02/2016 20:56:50
Buen código para poder implementarlo, y comprender como funcionan los procesos de encriptación.
Aunque por lo que veo ya tiene mucho tiempo de estar aquí.

Solo le marcaría un error en la parte.
IF c>=LEN(clAve)
c = 1
ENDIF

Funciona porque el código está en ambas partes, (codificador y decodificador) pero realmente al tener el signo igual que, automáticamente se pasa al valor 1 de la clave lo que le impide tomar el último valor de la clave. en otras palabras si pones una clave de 20 caracteres, realmente funciona como si solo fuera de 19, si pones 15 caracteres funciona como si fuera de 14. etc.

Por lo demás está muy bien.

En base a este buen aporte encontrado, quiero agregarles algo extra que me parece intereseante y que ha surgido de aquí mismo. espero les sea de utilidad.


copia este código y ejecútalo

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
*!* encriptas un valor semilla, ejemplo el caracter 'A' (puede ser cualquier otro),
*!* lo envías al encriptador como tu cadena de texto en secuencia (la cantidad que desees, en este caso 30 veces ) ej. 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
*!* el encriptador de te devolverá un resultado en xxxxxxx
*!* utilizas el descifrador de clave enviando el resultado obtenido en xxxxxxx, junto al caracter semilla que utilizaste en este caso 'A'
*!* bingo obtienes la clave utilizada por el encriptador.
*!* si envias 30 caracteres Y el resultado del descifrador de clave empieza a repetirse en el valor 20, la clave es de 20 caracteres si no se repite tiene mas caracteres,
*!* TRY it

xxxxxxx= encripta('AAAAAAAAAAAAAAAAAAAAAAAAA')
WAIT WINDOW xxxxxxx
vxretorna= descifraclave(xxxxxxx,'A')
WAIT WINDOW vxretorna

RETURN vxretorna

FUNCTION encripta
LPARAMETER texto
LOCAL textoenc, j, letra
clave = ')&H%$V1#@^+=?/><:MN*-'
textoenc = SPACE(0)
c = 1
FOR j = 1 TO LEN(texto)
letra = MOD(ASC(SUBSTR(texto, j, 1))+ASC(SUBSTR(clave, c, 1)), 256)
textoenc = textoenc+CHR(letra)
c = c+1
IF c>LEN(clave)
c = 1
ENDIF
ENDFOR
RETURN textoenc
ENDFUNC

FUNCTION descifraclave
LPARAMETER texto,semilla
LOCAL textoenc, j, letra
textoenc = SPACE(0)
c = 1
FOR j = 1 TO LEN(texto)
letra = MOD(ASC(SUBSTR(texto,j,1))-ASC(semilla), 256)
textoenc = textoenc+CHR(letra)
ENDFOR
RETURN textoenc
ENDFUNC
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar