当前位置: 首页 > ai >正文

python使用sqlcipher4对sqlite数据库加密

python对很多项目都需要对sqlite数据库的数据进行加密,最流行的加密方式是使用sqlcipher4,当前使用的python版本为3.10(其它python版本应该也可以,未对所有版本测试过),本博文是直接使用sqlcipher4(也支持sqlcipher3)在项目上的应用,在后面有下载地址,下载后,可以直接使用

一、相关代码

self.user = User()self.user.id = tkinter.StringVar()self.user.username = tkinter.StringVar()self.user.email = tkinter.StringVar()self.user.age = tkinter.IntVar()self.msg = tkinter.StringVar()self.userName_find = tkinter.StringVar()self.userName_find.set('请输入用户名称')tkinter.Label(self.page, text='用户名称:', font=('Terminal', 12)).grid(row=1, column=1)tkinter.Entry(self.page, textvariable=self.user.username, width=20).grid(row=1, column=2, columnspan=2)tkinter.Label(self.page, text='邮箱:', font=('Terminal', 12)).grid(row=2, column=1, pady=5)tkinter.Entry(self.page, textvariable=self.user.email, width=20).grid(row=2, column=2, columnspan=2)tkinter.Label(self.page, text='年龄:', font=('Terminal', 12)).grid(row=3, column=1, pady=5)tkinter.Entry(self.page, textvariable=self.user.age, width=20).grid(row=3, column=2, columnspan=2)tkinter.Button(self.page, text='保存', font=('Terminal', 12), command=self.save).grid(row=4, column=2,)tkinter.Entry(self.page, textvariable=self.userName_find, width=20).grid(row=5, column=1, columnspan=4,pady=30)tkinter.Button(self.page, text='查询', font=('Terminal', 12), command=self.get_User).grid(row=5, column=4,columnspan=1)tkinter.Label(self.page, textvariable=self.msg, font=('Terminal', 12)).grid(row=6, column=1)self.root.mainloop()# 查询基础配置def get_User(self):user = UserService.select_user_by_username(self.userName_find.get())if user:string = f"✓ 查询用户 'bob': ID: {user[0]}, 用户名: {user[1]}, 邮箱: {user[2]}, 年龄: {user[3]}"messagebox.showinfo('提示信息', string)def save(self):username = self.user.username.get()email = self.user.email.get()age = self.user.age.get()users_data = [(username, email, age),]UserService.insert_users(users_data)messagebox.showinfo('提示信息','保存成功')

二、使用截图

三、源码下载

因工具软件太大,放在了云盘

链接:https://pan.baidu.com/s/1wZ_8BEf_1jrQu9ghN9wk9Q?pwd=15fb 提取码:15fb

http://www.xdnf.cn/news/18925.html

相关文章:

  • Mip-splatting
  • GCC版本和C语言标准版本的对应关系
  • java去图片水印的方法
  • 生产环境Vue组件报错:Cannot access before initialization
  • 使用qianjkun uniapp 主应用 集成 vue微应用
  • 8.28作业
  • 可改善能源利用水平、削减碳排放总量,并为可再生能源规模化发展提供有力支撑的智慧能源开源了
  • Python Imaging Library (PIL) 全面指南:Python Imaging Library (PIL)基础图像处理入门
  • 【图像处理基石】DCT在图像处理中的应用及实现
  • 从零开始学习JavaWeb-20
  • 第二十节:3D文本渲染 - 字体几何体生成与特效
  • Node.js终极文本转图指南
  • 使用 Action 自动部署 VuePress 到 GitHub Pages
  • Webdriver-Manager 4.0.1启动错误解决
  • Komo Searc-AI驱动的搜索引擎
  • 区块链+隐私计算护航“东数西算”数据安全报告
  • 20.22 QLoRA微调实战:中文语音识别数据准备全流程解密
  • hintcon2025No Man‘s Echo
  • 国产芯力量!贴片式SD卡搭载北京君正Rk瑞芯微,打造嵌入式存储低延迟+高可靠黄金组合​
  • 《从应用到内核:三种流量转发方案深度对比》
  • 手机上访问你电脑上的前端项目
  • 机器学习和高性能计算中常用的几种浮点数精度
  • ​突破RAG知识库中的PDF解析瓶颈:从文本错乱到多模态处理的架构跃迁​
  • 面试tips--JVM(2)--对象创建的过程
  • SLF4J和LogBack
  • 工业级TF卡NAND + 北京君正 + Rk瑞芯微的应用
  • @Jenkins 介绍、部署与使用标准作业程序
  • Gin Validator 错误信息翻译与自定义校验规则详解
  • VS2022+QT6.7+Multimedia(捕获Windows音频数据,生成实时频谱)
  • 浅谈JMeter Listener