【发布时间】:2015-07-30 15:31:46
【问题描述】:
我正在尝试在我的程序中添加一些代码来加密我使用的 sqlite 数据库。我试图提示用户输入密码,如果它不存在,则使用该密码创建一个新的加密数据库,或者解密并加载现有数据库。我似乎找不到很多文档,我不知道该怎么做。我的代码如下:
if encryption is True:
print("***PYPER TIMESHEET UTILITY***")
print("\nEnter encryption password below:")
key = getpass.getpass()
DB_NAME = ".timesheet.db"
engine = create_engine('sqlite:///{}'.format(DB_NAME), module=sqlite)
else:
print("WARNING: Unencrypted session. Install pysqlcipher3 to enable encryption\n")
DB_NAME = ".timesheet.db?cipher=aes-256-cfb&kdf_iter=64000"
engine = create_engine('sqlite:///{}'.format(DB_NAME))
DBSession = sessionmaker(bind=engine)
session = DBSession()
编辑:忘记提供更多信息。
我试过what's listed at sqlalchemy。在上面的例子中,我意识到我遗漏了一个重要的行,
from pysqlcipher import dbapi 2 as sqlite
【问题讨论】:
-
你尝试了什么?它是怎么失败的?不要指望这会像 Rent-A-Coder 一样免费。
-
我不知道 - 这只是一个个人学习项目,我感到很沮丧。我用更多信息更新了帖子。
-
“这不起作用”根本没有信息。它是如何失败的?你期望什么行为?你得到了什么?
-
它运行,并要求输入密码,但不加密表。它仍然是纯文本。
-
啊,现在我们到了某个地方。将您的加密会话的
DB_NAME与未加密的一端进行比较。另外,想想你必须在哪里插入key。再次阅读示例。
标签: python python-2.7 sqlalchemy sqlcipher