Ver Mensaje Individual
  #8 (permalink)  
Antiguo 28/06/2010, 16:51
yera2002
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Problemas con comparacion de caracteres

Hola a todos gracias por contestar:
Bueno voy a exponer mi problema completo y quizá asi nos entendamos mejor.

Yo guardo informacion de tipo texto en una base de datos, esta informacion es muy grande y necesito encriptar la informacion. Primero intente via Base de datos (SQL Server) con informacion pequeña no tuve problema sin embargo con mucha informacion tuve problema de datos truncados. Por lo que pensé en generar un algoritmo de encriptacion y buscando en Internet encontre un OCX llamado CAPICOM distribuido por microsoft el cual hace esta funcion. Ahora bien, yo requiero dejar esa informacion en un campo de la base de datos, pero cuando guardo el registro me dice que necesito especificar los valores de algunos campos. Verifique la informacion y encontre que al momento de encriptar la informacion algunos caracteres vienen con ' (comilla simple) por lo que el manejador de base de datos lo toma como un separador de columnas.

Ahora bien, intenté crear esta funcion para sustituir esta comilla simple por un conjunto de caracteres, sin embargo si la cadena que me regresa la propiedad CONTENT del objeto CAPICOM viene con varias comillas simples, solo me reemplaza 1. Lo que hice fue debbugear el proyecto y obtener el valor de la propiedad CONTENT de CAPICOM e ir caracter por caracter revisando. La cadena que estoy probando tiene una longitud de 18000 caracteres mas o menos y solo revise unos 20, la parte que revise venia asi:

????????????????CA??????????????????

Entonces al hacer el debbug puse un msgbox si la letra detectada era una "C", pero nunca me lo mostro. Aun cuando yo verifique el valor en la funcion MID()
Ahora bien, ya analizando el codigo me di cuenta que estoy regresando un valor binario. ¿Alguien me puede decir como lo puedo resolver?

Codigo:

Sub cmdEncripta()
strCodigoEncripta = Trim(rstFormato("codigo"))
objCapicom.Content = strCodigoEncripta
objCapicom.SetSecret "mipass", CAPICOM_SECRET_PASSWORD
objCapicom.Algorithm = CAPICOM_ENCRYPTION_ALGORITHM_3DES
strResultado = objCapicom.Encrypt(CAPICOM_ENCODE_BINARY)
If Len(strResultado) = 0 Then
MsgBox "Fallo al encriptar informacion.", vbCritical + vbOKOnly, "EncryptaBD"
Else
strResultado = Replace(strResultado, "'", "CHD+*=")
End If
end Sub