Programación General > Visual Basic 6.0 e inferiores
Re: Como Encriptar una DB (Access)
jc_moty:
--- Cita de: "Mellileo" ---Como hago para saber a través de VB, si la BD de access esta encriptada o no?
--- Fin de la cita ---
Bueno dejame comentarte que yo tambien he adaptado el codigo de EncriptarDatostipoNuevo.zip a mi proyecto y lo que he hecho para saber si la BD esta encriptada es esto:
Creo una conexion con ADO, y si la BD esta encriptada, al intentar abrir la conexion, VB te va dar un Error: "No se reconoce el Formato de la Base de Datos", la cuestion esta en darle tratamiento a este error:
--- Código: Text --- Dim Data As ConnectionOn Error GoTo errMgrSet Data = New ConnectionData.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data source = " & App.Path & "\Data1.mdb;Persist Security Info=False;JET OLEDB:DATABASE PASSWORD=123456"Data.Open ' Si la BD esta encriptada aqui te va dar el errorerrMgr: If Err.Number <> 0 Then Select Case Err.Number ' Por si la BD esta encriptada Case -2147467259 ' AQUI VA EL CODIGO DE ENCRIPTADO/DESENCRIPTADO Data.Open Case Else MsgBox Err.Description, vbInformation, "Error: " & Err.Number End Select End If Espero te sirva
Saludos :suerte:
Mellileo:
Hola jc_moty:
Gracias por tu aporte, pues tu idea ha funcionado de maravilla, he logrado que la bd se desencripte al cargar el soft y se encripte al salir del él.
Mil gracias por tu ayuda!!
De igual manera le doy las gracias a J.M.Movilla por el código que compartió!
Saludos,
Mellileo!!
UserCode:
--- Citar ---Fernando H:
Seguro que debe de haber una funcio o rutina que encripte en realidad hay programas que desifran la contraseña de la base de datos y seria mejor encriptarla como archivo gracias por sus respuestas nos vemos
--- Fin de la cita ---
Si es verdad pueden conseguirse programas por ahi que permitan entrar a BD Access con clave, como estoy haciendo otras cosas, pues no me he puesto a probar estos fuentes que encriptan y desencriptan la BD, pero una pregunta para quienes ya lo han usado o anexado a sus programas en desarrollo...
La BD está encriptada, al cargar el programa la desencripta para trabajar con ella y al cerrar la aplicacion, vuelve a encriptar la BD, pero mientras el programa está cargado, la BD está desencriptada? o la encripta y la desencripta en cada operacion de registros? porque si el programa la mantiene desencriptada mientras el programa esta en ejecución, entonces puede accesarse a ella por el propio Access si no tiene clave, si si la tiene, tal vez con algun programa pueda romperse esa clave no? :unsure:
Un programa para cualquier local o empresa, siempre tienen cargada la aplicacion, no la cierran y abren cada vez que haran algo, sino al terminar el dia y cerrar la oficina o tienda. Si encripta y desencripta en cada operacion de registros es perfecto, si mas bien, solo encripta y desencripta entre el estar ejecutado el programa y no, pues no si hay una pequeña brecha de inseguridad sobre todo si la BD mantiene datos delicados e importantes para alguna compañia.
Bueno ahi ta pa que me digan quienes ya le han dado viaje a usar esto en sus programas para serlos más seguros , y hacer de este mundo, un mundo mas seguro hehehe :hola:
jc_moty:
Excelente observacion UserCode, estoy desarrollando una aplicacion a la cual le he anexado el codigo para el encriptado/desencriptado de la BD y la desencripta al abrir el sistema y al cerrarlo la vuelve a encriptar, por lo que he protegido la BD con contraseña, sin embargo como vos señalas, seguramente hay programas para romper esta contraseña, lo que he pensado es en poner un titulo a la BD de Access, de tal manera que si rompen la contraseña, la ventana de Access tomara el titulo que le he colocado, y desde el sistema o desde otro programilla que se inicie con Windows, estar buscando cada segundo una ventana con ese nombre y si la encuentra que la cierre (obviamente para hacer esto seria con unas cuantas llamadas a las API's).
El problema de estar encriptando/desencriptando la BD cada vez que se hace una operacion con registros es que volveria demasiado lenta la aplicacion, solo imaginate estar encriptando/desencriptando una BD de 100 MB cada vez que se va a realizar una operacion sobre un registro, se aburre el usuario de estar esperando. Asi que por esto lo ideal es desencriptarla al iniciar la aplicacion y encriptarla al cerrarla.
El dilema es: ¿Como proteger la BD mientras la aplicacion esta abierta?, me parece que cada quien tendra que usar su imaginación.
Saludos :comp:
Mellileo:
Hola Genios:
Con relación a esto:
--- Citar ---lo que he pensado es en poner un titulo a la BD de Access, de tal manera que si rompen la contraseña, la ventana de Access tomara el titulo que le he colocado, y desde el sistema o desde otro programilla que se inicie con Windows, estar buscando cada segundo una ventana con ese nombre y si la encuentra que la cierre (obviamente para hacer esto seria con unas cuantas llamadas a las API's).
--- Fin de la cita ---
Cómo logro que una aplicación quede residente en memoria y se ejecute constantemente??, me imagino que lo que acota jc_moty tiene que ver con eso... y sería genial, pero con qué API's logro hacer esto?? o si alguien tiene un ejemplo que de pinitos en el tema le quedaría eternamente agradecido!!
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa