在windows11安装pysqlcipher3,对sqlite3数据库进行加密

  金牌会员 | 2024-7-29 07:16:37 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 970|帖子 970|积分 2910

sqlite3数据库本身不支持暗码设置,但数据库就这么暴露着,随意就能被他人连接查看,肯定是不可行的。
pysqlcipher3是一种Python库,可以通过利用OpenSSL库对SQLite数据库进行加密息争密。它提供了在Python中连接到加密的SQLite数据库的功能,可以执行查询和事故等操纵。
直接在windows上 pip install pysqlcipher3 的方式会报错,因此需要按照以下步骤进行:
1. 安装Tcl

      Download & Install Tcl | ActiveState

2. 安装 OpenSSL x64

      Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions(我用的是
      Win64OpenSSL-1_1_1w)


  • 在路径C:\Program Files\OpenSSL-Win64\lib下, 找到并复制、粘贴以下左边四个文件, 然后改为右边的名称
   libcrypto.def —> libeay32.def
  libcrypto.lib —> libeay32.lib
  libssl.def —> libssl.def
  libssl.lib —> libssl.lib
  

  • 将文件夹 C:\Program Files\OpenSSL-Win64\include\openssl 拷贝到 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include
     注意设置情况变量: OPENSSL_CONF  C:\Program Files\OpenSSL-Win64\bin\openssl.cfg
3. 安装vs2022

      安装时只选择 C++的桌面开辟 的组件就可以
4. 下载sqlcipher :

GitHub - sqlcipher/sqlcipher: SQLCipher is a standalone fork of SQLite that adds 256 bit AES encryption of database files and other security features.解压后修改 Makefile.msc 文件:


   1. TCC = $(TCC) -DSQLITE_TEMP_STORE=1
      修改为:
      TCC = $(TCC) -DSQLITE_TEMP_STORE=2 -DSQLITE_HAS_CODEC -I"C:\Program Files\OpenSSL-Win64\include"
  
  2. 在以下位置 新增下面两行赤色设置
  # If ICU support is enabled, add the linker options for it.
  #
  !IF $(USE_ICU)!=0
  LTLIBPATHS = $(LTLIBPATHS) /LIBPATH(ICULIBDIR)
  LTLIBS = $(LTLIBS) $(LIBICU)
  !ENDIF
  # >
  LTLIBPATHS = $(LTLIBPATHS) /LIBPATH:"C:\Program Files\OpenSSL-Win64\lib\VC\static"
  LTLIBS = $(LTLIBS) libcrypto64MT.lib libssl64MT.lib ws2_32.lib shell32.lib advapi32.lib gdi32.lib user32.lib crypt32.lib
  # You should not have to change anything below this line
  打开 x64 Native Tools Command Prompt for VS 2022 ,目次切换到 sqlcipher,执行以下指令:
   nmake /f Makefile.msc clean
  nmake /f Makefile.msc
  编译后会生成 sqlite3.c 和 sqlite3.h文件(注意:编译报错不要紧,只要生成了这两个文件)
5. 下载pysqlcipher3

GitHub - rigglemania/pysqlcipher3: Python 3 bindings for SQLCipher
在其根目次创建文件夹amalgamation,并将上一步生成的sqlite3.c 和 sqlite3.h两个文件拷贝进来。
下载SQLite Download Page , Source Code中会包罗sqlite3.h, sqlite3.c等4个文件, 在pysqlcipher3\src\python3中创建文件夹sqlcipher, 将4个文件放入此中
6. 安装pysqlcipher3

打开x64 Native Tools Command Prompt for VS 2022,目次切换到 pysqlcipher3
   1. 执行 python setup.py clean
  2. 执行 python setup.py build_amalgamation
  3. 执行 python setup.py install
  

假如有雷同错误,将..\pysqlcipher3\src\python3文件夹下全部.c文件内容中的 MODULE_NAME 替换成 "pysqlcipher3.dbapi2", 再重新执行下令

至此,就成功安装了pysqlcipher3


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表