Jose,
Gracias, entiendo.
Tal como tengo mis DBFs no puedo encriptar campos, deberia de cambiar
tamaños... igual deberia de replantear la aplicación.
Para encriptar TODA una DBF, o un fichero... ¿alguna función?
Porque igual puedo encriptar toda la base de datos y que sea desde la
aplicación la encargada de "desencriptar" los datos i así poder trabajar y
visualizar los datos.
Un Saludo,
Xevi.
"Jose F. Gimenez" ha escrit al missatge:[email=5196213d@svctag-j7w3v3j....]5196213d@svctag-j7w3v3j....[/email]
Xevi,
> Me queda una duda en el tintero...
>> ¿El texto de la cadena encriptada SIEMPRE tendrá la misma longitud que el
>> texto a encriptar?
>
> o sea... si encripto un texto de un campo que ocupa 25 caracteres en una
> DBF, el texto encriptado, ¿cuanto ocupará?
> Lo digo por si se respeta el ancho de los campos dados en una estructura
> de una DBF o como hay que hacerlo.
No. Para cifrar 25 caracteres, tienes que expandir la cadena a 32
caracteres, con Pad( cCadena, 32 ), y el texto cifrado va a ocupar 32
caracteres. No intentes después recortarlo porque entonces no se puede
descifrar.
Si lo que vas a hacer es cifrar un campo que contiene una contraseña, lo
mejor que puedes hacer es establecer ese campo de 32, o mejor de 64,
caracteres, y guardar siempre la cadena convertida a hexadecimal. P.ej.:
REPLACE clave WITH StringToHex( cClaveCifrada )
Ten en cuenta que el texto en hexadecimal ocupa siempre justo el doble
que la cadena original. Si la cadena es de 16 caracteres, el resultado
será de 32, y si era de 32, el resultado será de 64 caracteres.
Y ya que estamos... para guardar contraseñas no hace falta usar un
algoritmo de cifrado simétrico, como AES. Se puede usar también un hash
de tipo MD5 (actualmente desaconsejable) o SHA1. La técnica consiste
siempre en no descifrar nunca las contraseñas guardadas. Lo que se hace
es que cuando el usuario escribe su contraseña para entrar, el texto que
ha escrito se vuelve a cifrar, y se compara con lo que tienes almacenado
en la BD. Esto es más seguro que utilizar AES o similares, porque de
algún modo tienes que usar una contraseña de cifrado que se podría
averiguar.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info