gpt4 book ai didi

python - 如何加密 DRF 中的响应?

转载 作者:行者123 更新时间:2023-12-02 01:38:16 24 4
gpt4 key购买 nike

我想加密我的 DRF 项目 API 响应有没有办法对大型响应进行加密,以便我只能访问前端侧的数据?我想加密所有响应。

最佳答案

是的,这是可能的,我自己也应用过。您可以使用直接应用于序列化器的 AES256(高级加密标准 256)来完成此操作。

基本上加密将依赖django的 key 来加密和解密。

因此,将有两个函数 encrypt()decrypt(),您将在其中申请需要将其加密发送到数据库的每个字段。以及在端点命中 GET 请求时解密。

You can get these function example and implementation here.

示例:

from rest_framework import serializers
from django.conf import settings
from aesencryption import AESCipher

aes = AESCipher(settings.SECRET_KEY[:16], 32)


class MyModelSerializer(serializers.ModelSerializer):
class Meta:
model = MyModel
fields = ['name', 'address']

def create(self, validated_data):
# Here the data will be inserted into the db encrypted.
validated_data['name'] = aes.encrypt(validated_data['name'])
validated_data['address'] = aes.encrypt(validated_data['address'])
return MyModel.objects.create(**validated_data)

def to_representation(self, instance):
# Here you will decrypt the data from the db.
return {
'name': aes.decrypt(instance.name),
'address': aes.decrypt(instance.address)
}

警告:更改 Secrete_key 时要小心。如果丢失,则无法恢复数据。

关于python - 如何加密 DRF 中的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71990865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com