首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取django-fernet字段中的加密值。

获取django-fernet字段中的加密值。
EN

Stack Overflow用户
提问于 2022-04-11 03:51:37
回答 1查看 296关注 0票数 0

我使用django-fernet-field库:

代码语言:javascript
运行
复制
class RoutePoint(models.Model):
    username = models.CharField(max_length=30)
    password = EncryptedCharField(max_length=30, null=True)

当我访问加密字段时,该字段的值将自动解密。

代码语言:javascript
运行
复制
p = RoutePoint.objects.all()[0]
print(p.password)
> mypass

有任何方法可以获得实际存储在数据库中的加密值吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-23 13:05:09

model.Field中执行解密的方法是def from_db_value(self, value, expression, connection, *args)。理论上,您可以为RoutePoint.password重写此方法,并让它返回一个元组,第一个元素是原始字段值,第二个元素是解密明文。

下面是指向相关源代码https://github.com/orcasgit/django-fernet-fields/blob/master/fernet_fields/fields.py#L74的指针。

备注: django-fernet-fields已经3年多没有更新了,作为以前的用户,我把代码库分叉成了Google而不是https://github.com/script3r/django-tink-fields支持的代码库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71822542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档