
你的 sqlite3数据库是用 SEE 加密的吗? 如果是了话,试一下通过python执行以下sqlite pragma命令来提供解密key
PRAGMA key='your-secret-key';根据 SEE的文档,通过 PRAGMA 命令也可以提供解密key,而不需 sqlite3_key_v2() 这个C API。你试一下。
import MySQLdb
conn=MySQLdbconnect(user='root',passwd='pwd',host='127001',db='python_test')
cur=conncursor()
curexecute("select from users where uid='101' and login='ong'")
##uid 是你的密码 ;login是你的用户名
num=0
for data in curfetchall():
num=num+1
print data
if(num != 0):
print '登陆成功'
else:
print '用户名或密码未找到'
curclose()
conncommit()
connclose()
如果还有其他问题可以再问
一、关于SQLite ADONET: SystemDataSQLite 是一个原始 SQLite 的加强版。它不需要链接 NET Runtime,因此可脱离 NET 独立发布,它内嵌了一个完整的 ADONET 20 引擎,为开发提供了完整的支持。
二、在C#中使用SQLite
1 添加引用: SystemDataSQLiteDLL 。
2 创建数据库文件: SQLiteConnectionCreateFile(fileName);
3 连接数据库: var connection = new SQLiteConnection(connectionString);
connectionString 中包含了数据库的一些配置信息,比如数据库文件路径,数据库密码等,可用 SQLiteConnectionStringBuilder 来创建 connectionString,当然也有其他方法,都很简单。
4 从数据库读取数据。
三、代码:
view sourceprint
// 注意此处 using 。
using System;
using SystemDataSQLite;
using SystemText;
namespace ConsoleApplication
{
public class SQLiteTester
{
public static void Test()
{
// 1创建一个数据库文件。
var databaseFileName = "D:/testdb3";
SQLiteConnectionCreateFile(databaseFileName);
// 2创建数据库连接。
var connectionString = new SQLiteConnectionStringBuilder
{
DataSource = databaseFileName,
Password = "xxxxxx" // 此处假设数据库密码为: xxxxxx。
};
// 当然也可以直接: var connection = new SQLiteConnection("data source=" + databaseFileName + ";password=" + Password);
using (var connection = new SQLiteConnection(connectionStringToString()))
{
// 3打开连接。
connectionOpen();
package test;
import javasqlConnection;
import javasqlDriverManager;
import javasqlResultSet;
import javasqlStatement;
public class TestSQLite {
public static void main(String[] a) {
TestSQLite sqlite = new TestSQLite();
String sql = sqlLogData();
// ////////////////////////
String databaseName = "c:/logdatadb";
sqliteexeCreateTable(sql, databaseName);
// ///////////////////////
sql = sqlIpAddress();
databaseName = "c:/IPaddressdb";
sqliteexeCreateTable(sql, databaseName);
}
/
创建数据库
@param sql
/
public static void exeCreateTable(String sql, String databaseName) {
try {
// 连接SQLite的JDBC
ClassforName("orgsqliteJDBC");
// 建立一个数据库名zieckeydb的连接,如果不存在就在当前目录下创建之
// String filename = "IPaddressdb";此行是在此类滴当前路经下建一个IPaddress数据库
// String filename = "c:/IPaddressdb";//此行是在C盘下建一个IPaddress数据库,盘符好象要小写才行注意前面的有个"/"
Connection conn = DriverManagergetConnection("jdbc:sqlite:/"
+ databaseName);
Statement stat = conncreateStatement();
statexecuteUpdate(sql);// 创建一个表,两列
/
statexecuteUpdate("create table FlyCrocodile (name varchar(30),age varchar(30)) "); //建表
statexecuteUpdate("insert into flycrocodile values('flucrocodile',21);"); //插入数据
插入数据
ResultSet rs = statexecuteQuery("select from tbl1;"); // 查询数据
while (rsnext()) { // 将查询到的数据打印出来
Systemoutprint("name = " + rsgetString("name") + " "); // 列属性一
Systemoutprintln("salary = " + rsgetString("age")); // 列属性二 }
/
// rsclose();
connclose(); // 结束数据库的连接
} catch (Exception e) {
eprintStackTrace();
}
}
/
创建logdata数据库
@return String
/
private static String sqlLogData() {
String s = null;
// ////////////////////////////////////////
String s1 = "Create TABLE LogData(";
String s2 = "logid integer PRIMARY KEY ASC ON CONFLICT Ignore AUTOINCREMENT UNIQUE NOT NULL";
// String s3 = ",logdate datetime default date()";
String s3 = ", logdate varchar(12)";
String s4 = ",logtime varchar(10)";
String s5 = ",host varchar(50)";
String s6 = ",url varchar(50)";
String s7 = ",verb varchar(50)";
String s8 = ",clientIp varchar(50)";
String s9 = ",event varchar(50)";
String s10 = ",content text";
String s11 = ");";
// ///////////////////
s = s1 + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9 + s10 + s11;
return s;
}
/
创建IpAddress数据库
@return String
/
private static String sqlIpAddress() {
String s = null;
// ////////////////////////////////////////
String s1 = "Create TABLE iptable( ";
String s2 = "ip1 bigint";
String s3 = ",ip2 bigint";
String s4 = ",country varchar(100)";
String s5 = ",Primary Key(ip2,ip1)";
String s6 = ");";
// ///////////////////
s = s1 + s2 + s3 + s4 + s5 + s6;
return s;
}
/
Connection
@return Connection
/
public static Connection getConnection() {
Connection conn = null;
try {
// 连接SQLite的JDBC
ClassforName("orgsqliteJDBC");
// 建立一个数据库名zieckeydb的连接,如果不存在就在当前目录下创建之
// String filename = "c:/IPaddressdb";
conn = DriverManagergetConnection("jdbc:sqlite:/c:/IPaddressdb");
/
Statement stat = conncreateStatement();
statexecuteUpdate(sql);// 创建一个表,两列
/
} catch (Exception e) {
}
return conn;
}
}
给数据库文件加密,我给您介绍一个比较简便的方法:
1 下载安装超级加密3000。
2 然后在需要加密的文件上单击鼠标右键选择加密。
3 在d出的文件加密窗口中设置文件加密密码就OK了。
您好,很高兴为您解答。
参考看下:>
以上就是关于python 如何访问加密的sqlite3数据库全部的内容,包括:python 如何访问加密的sqlite3数据库、使用python做登陆程序,在数据库中查找用户名和密码是否正确,用SQLite、c#中怎么连接到sqlite数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)