// 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 desencriptar una base datos encriptada se debe llamar al método ChangePassword() con el valor NULL o vacío "" en el password:
// 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 que se encuentre encriptada, o crear una nueva con encriptación habilitada, se debe especificar el password en el ConnectionString, o llamar al método SetPassword() antes de abrir una nueva conexión utilizando la clase SQLiteConnection. El password ingresado en dicha cadena de conexión debe ser "cleartext" o puras cadenas de caracteres (no binario), y el password ingresado en el método SetPassword() puede ser un arreglo binario de bytes (binary byte arrays)
// 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 }); // The connection is now usable |
Por defecto la palabra clave ATTACH usará la misma llave de encriptación que la base de datos principal cuando se agrega a otro archivo de base de datos con la misma conexión. Para cambiar este comportamiento se debe utilizar el modificador KEY:
Si estas agregando una base de datos encriptada debes utilizar el password con "cleartext"// 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 agregar una base de datos encriptada usando un password en binario:
// Attach to a database encrypted with a binary keySQLiteConnection 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();
Referencia de aqui: http://sqlite.phxsoftware.com/forums/t/130.aspx
c'ya..