加密Python Tkinter应用程序的sqlite表-pysqlcipher?它是如何安全的?

加密Python Tkinter应用程序的sqlite表-pysqlcipher?它是如何安全的?,python,encryption,sqlcipher,pysqlcipher,Python,Encryption,Sqlcipher,Pysqlcipher,我制作了一个tkinter桌面应用程序,我有一个名为auth的表,其中有一行包含敏感的API凭据。我的想法是使用pysqlcipher()或等效工具加密此表 根据文档,在执行任何操作之前,必须先传递PRAGMA键。如果有人反编译了我的应用程序的.exe版本,难道他们不能在源代码中找到这个密钥,然后从那里解密数据库吗?如果是这样,在桌面应用程序中保护敏感API凭据的常见解决方案是什么 from pysqlcipher import dbapi2 as sqlite conn = sqlite.co

我制作了一个tkinter桌面应用程序,我有一个名为
auth
的表,其中有一行包含敏感的API凭据。我的想法是使用
pysqlcipher
()或等效工具加密此表

根据文档,在执行任何操作之前,必须先传递
PRAGMA键
。如果有人反编译了我的应用程序的.exe版本,难道他们不能在源代码中找到这个密钥,然后从那里解密数据库吗?如果是这样,在桌面应用程序中保护敏感API凭据的常见解决方案是什么

from pysqlcipher import dbapi2 as sqlite
conn = sqlite.connect('test.db')
c = conn.cursor()
c.execute("PRAGMA key='test'")
c.execute('''create table stocks (date text, trans text, symbol text, qty real, price real)''')
c.execute("""insert into stocks values ('2006-01-05','BUY','RHAT',100,35.14)""")
conn.commit()
c.close()
我的sqlite表结构:

db.sqlite
|__ profiles
|__ auth
|__ tables

免责声明:我不是安全或加密专家,但我非常愿意探索和学习所有选项。

pragma_key
您的计算机硬件id/使用标准密钥进行串行加密。每个安全链都需要一个
唯一的
步长值。使用cpu时间+时间(初始/第一次)。它是安全的,直到有人看到你的代码。查看Python代码很容易,即使是“已编译”。按照您建议的方式进行操作将使其具有一定的抗篡改性,但并非不可能,当然也不会太难。DRM很难,一开始不选择Python作为桌面应用程序。为什么以前是黑帮的说唱歌手现在告诉我们盗版是错误的?即使拥有该行业的所有资金,数字版权管理也很困难+1到@dsgdfg,但即使如此,一旦代码被看到,jig就启动了。关于在Web服务器上存储凭据和使用salt加密的想法?我不知道这到底意味着什么,但我想知道这是否是一个可能的解决方案。