Saltar al contenido

Proteger con contraseña una base de datos SQLite. ¿Es posible?

Nuestro grupo de especialistas pasados ciertos días de trabajo y recopilación de de información, dimos con los datos necesarios, deseamos que todo este artículo sea de utilidad en tu plan.

Solución:

Puede proteger con contraseña una base de datos SQLite3. Antes de realizar cualquier operación, configure la contraseña de la siguiente manera.

SQLiteConnection conn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
conn.SetPassword("password");
conn.Open();

entonces la próxima vez puedes acceder a él como

conn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;Password=password;");
conn.Open();

Esto no permitirá que ningún editor de GUI vea sus datos. Algunos editores pueden descifrar la base de datos si proporciona la contraseña. El algoritmo utilizado es RSA.

Posteriormente, si desea cambiar la contraseña, utilice

conn.ChangePassword("new_password");

Para restablecer o eliminar la contraseña, use

conn.ChangePassword(String.Empty);

Puede usar el cifrado incorporado del proveedor sqlite .net (System.Data.SQLite). Vea más detalles en http://web.archive.org/web/20070813071554/http://sqlite.phxsoftware.com/forums/t/130.aspx

Para cifrar una base de datos no cifrada existenteo para cambiar la contraseña de una base de datos cifradaabra la base de datos y luego use la función ChangePassword() de SQLiteConnection:

// Opens an unencrypted database
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\test.db3");
cnn.Open();
// Encrypts the database. The connection remains valid and usable afterwards.
cnn.ChangePassword("mypassword");

Para descifrar una base de datos cifrada existente llamar ChangePassword() con un NULL o "" clave:

// Opens an encrypted database
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\test.db3;Password=mypassword");
cnn.Open();
// Removes the encryption on an encrypted database.
cnn.ChangePassword(null);

Para abrir una base de datos cifrada existente o para crear una nueva base de datos cifrada, especifique una contraseña en el ConnectionString como se muestra en el ejemplo anterior, o llame al SetPassword() función antes de abrir una nueva SQLiteConnection. Contraseñas especificadas en el ConnectionString debe ser texto simple, pero las contraseñas proporcionadas en el SetPassword() La función puede ser matrices de bytes binarios.

// Opens an encrypted database by calling SetPassword()
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\test.db3");
cnn.SetPassword(new byte[]  0xFF, 0xEE, 0xDD, 0x10, 0x20, 0x30 );
cnn.Open();
// The connection is now usable

De forma predeterminada, la palabra clave ATTACH utilizará el mismo cifrado key como base de datos principal al adjuntar otro archivo de base de datos a una conexión existente. Para cambiar este comportamiento, utilice el modificador KEY de la siguiente manera:

Si está adjuntando una base de datos cifrada utilizando una contraseña de texto simple:

// Attach to a database using a different key than the main database
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\test.db3");
cnn.Open();
cmd = new SQLiteCommand("ATTACH DATABASE 'c:\pwd.db3' AS [Protected] KEY 'mypassword'", cnn);
cmd.ExecuteNonQuery();

Para adjuntar una base de datos cifrada usando una contraseña binaria:

// Attach to a database encrypted with a binary key
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\test.db3");
cnn.Open();
cmd = new SQLiteCommand("ATTACH DATABASE 'c:\pwd.db3' AS [Protected] KEY X'FFEEDD102030'", cnn);
cmd.ExecuteNonQuery();

Utilice SQLCipher, es una extensión de código abierto para SQLite que proporciona un cifrado AES transparente de 256 bits de los archivos de la base de datos. http://sqlcipher.net

Te mostramos las reseñas y valoraciones de los lectores

Si para ti ha sido útil nuestro artículo, sería de mucha ayuda si lo compartieras con otros seniors y nos ayudes a difundir esta información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *