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