1份加密檔案,讓2千萬人苦不堪言!

逗號下一站發表於2021-01-15

今天說的1份加密檔案是指億賽通加密檔案,許多公司為防止檔案外洩而引入公司的加密系統。Excel,word,PPT檔案全部會被加密,打上一把黃色的鎖(如下圖),今天分享解密億賽通加密檔案如何在本地電腦解密的方法!此方法需要使用到的工具是Python語言,用到的第三包有Django,解密演示動圖如下:解密後新生成的檔案黃色小鎖沒有啦!

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

需用的工具

1. Python
2. Python的第三方包 Django

解密過程

在此使用Django是為了快速搭建一個網址模型,此部分搭建過程不在此詳細描述。

一、安裝Django模組

如果有有外網,直接在cmd環境下執行如下程式碼。若無外網,則在www.pypi.org下載Django模組到本地,傳入無外網電腦,cmd下cd到Django模組目錄下。如果是whl包,用pip install "request包的名稱"。tag包,解壓後,用python setup.py install 命令安裝(注意內網安裝需要先安裝Django依賴包,依賴包有:pytz、sqlparse、asgiref)

pip install Django

二、views.py模組建立函式

如下函式用if分兩部分,如果在瀏覽器傳送的是get請求,則返回decrypt.html頁面(此頁面稍後製作),否則就是post請求即有上傳檔案,就用pic變數接收瀏覽器傳過來的檔案。在“E:/不常用工作/已解密檔案”資料夾中建立一個和傳過來名稱一樣的空檔案用save_path變數代表。然後再用With open 方法開啟這個剛剛建立的空檔案,用檔案的chunks()方法迴圈寫入到開啟的檔案中。最後,返回一個上傳檔案新的頁面。

def decrypt(request):
"""解密檔案"""
    if request.method == "GET":
        return render(request, "kpi/decrypt.html")
    else:
        # 獲取檔案
        pic = request.FILES["pic"]
        # 建立一個檔案
        # save_path = "%s/booktest/%s" % (settings.MEDIA_ROOT, pic.name)
        save_path = "E:/不常用工作/已解密檔案/%s" % pic.name
        with open(save_path, "wb") as f:
            # 獲取上傳檔案的內容並寫入開啟的檔案
            for content in pic.chunks():
                f.write(content)
        # 返回
        return redirect("/decrypt")

三、decrypt.html頁面製作

此頁面非常簡單,這裡設計了一個上傳檔案的Form表單

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>檔案系統</title>
</head>
<body>
<h4>檔案上傳</h4>
<form action="/decrypt" enctype="multipart/form-data" method="post">
   {% csrf_token %}
    上傳檔案:<br>
    <input type="file" name="pic"> <br>
    <input type="submit" value="上傳並解密">
</form>
</body>

效果圖如下:
在這裡插入圖片描述

四、urls.py模組程式碼編寫

urls.py我分了有兩個,為每一個專案下的urls,程式碼入下:意思是匹配所有的url地址,都進入kpi資料夾下的urls.py 檔案去匹配

from django.contrib import admin
from django.urls import path, include, re_path

urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'^', include('kpi.urls')),
]

kpi檔案件下的urls.py

from django.urls import path, include, re_path
from kpi import views
urlpatterns = [
re_path(r'^decrypt$', views.decrypt),
]

整體邏輯概述

當你安裝好python及Django包並配置好相關設定能執行Django後

1.當你再瀏覽器輸入你的ip+埠+/decrypt後,後臺urls.py就會收到你的請求,會匹配你輸入的url,進入kpi中url.py再次匹配。、
2.url.py中顯示會訪問views.py中的decrypt函式
3.decrpyt函式中的邏輯用來處理情求,當為post請求時,就會解密上傳的檔案。解密後,檔案存放在“E:/不常用工作/已解密檔案/”資料夾中,檔案圖示中的鎖沒有了,如下圖所示!

在這裡插入圖片描述

此專案已釋出在github,Github專案地址
https://github.com/liliwen365/Python ,贈人玫瑰,手留餘香!如果有用,求個star
歡迎關注公眾號『Python利劍』,和我一起探討解密原理!
如果文章能幫到你,記得 點贊+關注+收藏

在這裡插入圖片描述

相關文章