Programa Encriptar.prg
Function Codi
*Encripta
Parameters string_x
entrega_x = ""
DIMENSION CRIP(LEN(string_x))
FOR i = 1 TO LEN(string_x)
crip(i) = ASC(SUBSTR(string_x,i,1)) && entrega numero
ENDFOR
*
FOR i = 1 TO LEN(string_x)
crip(i) = crip(i) + 2 && al ASC le suma dos
ENDFOR
*
j = LEN(string_x)
FOR i = 1 TO LEN(string_x)
entrega_x = entrega_x + CHR(crip(j))
j=j-1
ENDFOR
Return entrega_x
****************************
FUNCTION DECOD
*desencripta
Parameters string_x
DIMENSION CRIP(LEN(string_x))
entrega_x = ""
string_x = ALLTRIM(string_x)
FOR i = 1 TO len(string_x)
crip(i) = ASC(SUBSTR(string_x,i,1)) && entrega numero
NEXT
*
FOR i = 1 TO len(string_x)
crip(i) = crip(i) - 2
NEXT
*
j = len(string_x)
FOR i = 1 TO len(string_x)
entrega_x = entrega_x + CHR(crip(j))
j=j-1
NEXT
Return entrega_x
JM
Coincido con Mauricio. No se deben guardar contraseñas cifradas. Se deben guardar los hash. Si alguien accede a la tabla de usuarios, podrá descifrar las contraseñas cifradas, pero solo adivinar las hasheadas (o lograr un sinónimo).
Por ejemplo con un simple CRC32. Hay 2**32 valores posibles. Teóricamente pueden lograr un sinónimo después de unos 50.000 intentos. En vfp CRC32 lo logras con SYS(2007,...). Pero debe estar disponible en casi cualquier lugar y no es el único disponible.
Saludos: Miguel, La Pampa (RA)