1
我正在使用Django捕获一些敏感数据的应用程序,我需要这些数据在数据库中进行加密。我必须使用数据库加密。Django和字段加密与数据库ENCRYPTBYKEY函数
因此,为了节省我的领域,我使用:
query = """
OPEN SYMMETRIC KEY MyKey
DECRYPTION BY CERTIFICATE MyCertificate
UPDATE mytable
SET name = ENCRYPTBYKEY(KEY_GUID('MyKey'), %s)
WHERE id = %s
CLOSE SYMMETRIC KEY MyKey
"""
args = ["Test Name", data.id]
cursor = connection.cursor()
cursor.execute(query, args)
transaction.commit_unless_managed()
的字段保存在数据库中,但是,当我uncrypt保存在基地中的数据,我得到0x540065007300740020004E0061006D006500
,我应该得到0x54657374204E616D65
。
有人知道为什么我的字符串中插入了一些0x00字节?
我试图使用connection.queries [-1]获取查询字符串,并直接在数据库中运行它,并且当我解密数据时,数据是干净的。