Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据未保存为加密数据django_Django_Encryption_Django Rest Framework - Fatal编程技术网

数据未保存为加密数据django

数据未保存为加密数据django,django,encryption,django-rest-framework,Django,Encryption,Django Rest Framework,到现在为止,我尝试了超过6个插件,现在相当沮丧。现在用这个 一切都很好,并相应地完成,但当我像这样在模型管理器中保存数据时 def create_user(self, email, password, **extra_fields): user = self.model(email=email, **extra_fields) user.test_field = 'new.user@oc.com' user.save(using=self._db

到现在为止,我尝试了超过6个插件,现在相当沮丧。现在用这个

一切都很好,并相应地完成,但当我像这样在模型管理器中保存数据时

 def create_user(self, email, password, **extra_fields):
        user = self.model(email=email, **extra_fields)
        user.test_field = 'new.user@oc.com'
        user.save(using=self._db)
        return user
它保存的数据通常不加密

我的模特就像

class User(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(max_length=255, unique=True)
    name = models.CharField(max_length=255)
    test_field = encrypt(models.CharField(max_length=100))
    objects = UserManager()

看起来你正在按预期做每件事

数据应该在数据库端加密

然而,在Django端以明文形式查看数据是正常的,因为ORM可以无缝地对其进行解密

如果直接在数据库上检查数据(使用未经ORM的原始SQL查询),则应该会看到加密的数据

如果需要过滤加密数据,应在ORM解密后在python中进行:


与执行
User.objects.filter(test\u field\uu contains=“somedata”)
不同,您需要执行
[User.objects.all中的User for User,如果User.test\u field中的“somedata”
。这种方法的(大)缺点是您需要将所有行传递到ORM(和解密机制)

看起来您正在按预期完成所有操作

数据应该在数据库端加密

然而,在Django端以明文形式查看数据是正常的,因为ORM可以无缝地对其进行解密

如果直接在数据库上检查数据(使用未经ORM的原始SQL查询),则应该会看到加密的数据

如果需要过滤加密数据,应在ORM解密后在python中进行:


与执行
User.objects.filter(test\u field\uu contains=“somedata”)
不同,您需要执行
[User.objects.all中的User for User,如果User.test\u field中的“somedata”
。此方法的(大)缺点是需要将所有行传递到ORM(和解密机制)

如何知道数据未加密?django cryptography几乎不加密数据,您确定您直接在DBMS中检查数据而不是通过django检查数据吗?我正在django管理面板中检查数据,它显示相同的静态数据@BluskyIt这很正常。Django管理员将显示从DBMS解密的内容。@Blusky Okay搞错了:(所有插件都工作正常。现在,如果我想让这些数据以可读的形式自动出现在我的网站上?是的,你不能在加密字段上查询,这是一个缺点。字段被解密为ORM处理DBMS数据,而不是SQL查询。你怎么知道数据没有加密?django加密技术似乎不会加密数据,你确定吗直接在您的DBMS中检查数据,而不是通过Django?我正在Django管理面板中检查数据,它显示相同的静态数据@BluskyIt是正常的。Django管理将显示从DBMS解密的内容。@Blusky好的,我搞错了:(所有插件都工作正常。现在,如果我想在我的网站中使用这些数据,那么它应该自动以可读的形式出现?是的,你不能在加密字段上查询,这是一个缺点。字段被解密是因为ORM处理DBMS数据,而不是SQL查询。请你给出一个小例子,我如何过滤这些数据?这将是一个极大的帮助。请你能请给出一个小例子,我如何过滤这些数据?这将是一个很大的帮助。