Python Mysql AES_DECRYPT()函数在Django原始查询中不起作用
当我在Django的原始查询中使用MySql函数AES_DECRYPT()时,该函数不起作用。我的代码如下:Python Mysql AES_DECRYPT()函数在Django原始查询中不起作用,python,mysql,django,encryption,Python,Mysql,Django,Encryption,当我在Django的原始查询中使用MySql函数AES_DECRYPT()时,该函数不起作用。我的代码如下: sql = "select AES_DECRYPT(myfield, mykey) as ssn from mytable " people_list = Peopletable.objects.raw(sql) for p in people_list: print p.ssn 它没有打印出来,这意味着AES_DECRYPT()不起作用。但是如果我在python端运行查询,那
sql = "select AES_DECRYPT(myfield, mykey) as ssn from mytable "
people_list = Peopletable.objects.raw(sql)
for p in people_list:
print p.ssn
它没有打印出来,这意味着AES_DECRYPT()不起作用。但是如果我在python端运行查询,那么我就得到了我需要的东西。我尝试了其他mysql函数,比如SUBSTR(),它们工作得非常好。似乎只有这个AES_DECRYPT()在Django中不起作用。有人能帮忙吗?非常感谢 这并不意味着AES_解密(myfield,mykey)的结果为None(null),就意味着它不工作 如果检测到无效数据或不正确的填充,则返回NULL。但是,如果输入数据或密钥无效,AES_DECRYPT()可能返回非空值(可能是垃圾)
尝试直接在数据库上运行相同的查询,可能会得到相同的结果。我不是Django prog,但
Peopletable.objects.raw(sql)
确实执行了查询吗?是的,它执行了。我可以得到所有其他字段的值,除了AES_DECRYPT()函数中的值。您是否使用MYSQL AES_encrypt对该列进行了加密?