python 如何访问加密的sqlite3数据库

python 如何访问加密的sqlite3数据库,第1张

你的 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数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/9277895.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存