1份加密文件,讓2千萬人苦不堪言!
今天說的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項目地址
//github.com/liliwen365/Python ,贈人玫瑰,手留余香!如果有用,求個star!
歡迎關注公眾號『Python利劍』,和我一起探討解密原理!
如果文章能幫到你,記得 點贊+關注+收藏 !