客户端加密Django

时间:2018-12-30 15:08:52

标签: javascript django encryption client-side-scripting

我刚完成一个应用程序,出于安全原因,我希望db的某些字段的内容只能由用户读取。这涉及到客户端加密,我认为我发现了不错的pure js implementation

通常,我会使用一部分用户密码哈希(客户端计算)作为密钥 vi (以某种方式存储)来获取AES 256 CBC,以提供加密和解密功能。​​

事情来了解密非常简单。自发地,我将使用在上下文中传递的对象作为我的函数的输入,直接在模板中调用该函数。看起来像:

<div class=whatever_the_class>
    <script>
        decrypt_function({{ patient.first_name }}, key, vi) 
        decrypt_function({{ patient.last_name }}, key, vi)
    </script>
</div>

但是,我不确定如何处理表单中的加密。我认为我需要绕开表单的工作方式(在此示例中为 form_add ),以将加密函数的输出作为数据使用,但是我真的不知道如何/在哪里进行。在表单的小部件部分?在模板中?

有什么想法吗?有什么干净的方法吗? (我也对类似的问题/帖子/项目感兴趣,以获得更清晰的图片)

# template
<form id="add_patient" method="post" action="add-patient/"> 
        {% csrf_token %}
        {{ form_add }}
        <input type="submit" value="Entrer">
</form>

# view
def index(request):
    try:
        user = request.user
        form_add = AddPatientForm()

        return render(request, 'jengu/index.html', {'form_add': form_add, 'form_record': form_record})
    except:
        return redirect('/')

# form
class AddPatientForm(forms.Form):
    last_name = forms.CharField(label='Nom', max_length=40)
    first_name = forms.CharField(label='Prénom', max_length=40)
    birthday = forms.DateField(label='date de naissance',
    widget=forms.DateInput(format='%d/%m/%Y',attrs={'placeholder': '31/03/1989'}),
    input_formats=['%d/%m/%Y',])

0 个答案:

没有答案