簡體   English   中英

如何在django上傳之前加密文件

[英]how to encrypt a file before uploading in django

我正在構建一個項目安全文件共享。它在上傳到本地計算機之前加密文件,如果用戶有解密密鑰,則在下載時解密。我被困在如何在上傳到我的電腦之前加密文件

我正在遵循下面提到的這種方法。

https://ruddra.com/documentation-of-django-encrypt-file/#basic-usage

但我不知道如何與我的代碼鏈接。 誰能幫我

視圖.py

def upload(request):
    context={}
    if request.method == 'POST':
        upload_file= request.FILES["document"]
        fs=FileSystemStorage()
        name=fs.save(upload_file.name, upload_file)
        context['url'] = fs.url(name)
    return render(request, 'accounts/upload.html',context)

上傳.html

{% include 'accounts/main.html'%}

<pre>
Upload your files for sharing
</pre>


{% block content %}

  <form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="file" name="document">
    <button type="submit">Upload</button>
  </form>
  {% if url %}

  <p> Uploaded file:<a href="{{ url }}">{{ url }}</a></p>
  {% endif %}

{% endblock %}

設置.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL= '/media/'

要在上傳到服務器之前加密文件,這意味着您需要在瀏覽器中對其進行加密 - 例如使用 JavaScript。 這是一個可以幫助您在 JS 中加密內容的線程: JavaScript AES 加密和解密(高級加密標准)

如果您願意接受挑戰,請考慮在 WASM 中運行 AES 以加速加密(對於大文件很重要)。

請注意,在 Django 中,所有 python 代碼都在服務器上執行。 問題中的鏈接示例顯示了如何在上傳文件后加密服務器上的文件: https : //ruddra.com/documentation-of-django-encrypt-file/#basic-usage

請注意,在上傳之前在瀏覽器上加密文件只是整個問題的一小部分。 要獲得安全的文件共享服務,您可能希望有一種方法可以與需要解密密鑰的其他用戶共享密鑰。 為此,您可能需要使用非對稱加密,例如,在上傳之前使用其他用戶的公鑰包裝(加密)密鑰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM