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]獲取查詢字符串,並直接在數據庫中運行它,並且當我解密數據時,數據是乾淨的。