1. 程式人生 > >excel工作薄密碼破解/清除

excel工作薄密碼破解/清除

簡介

目前excel檔案加密分兩種,一種是開啟檔案時候的密碼,要輸入密碼才能檢視文件;
第二種是工作簿鎖定密碼,工作簿部分割槽域是被鎖定的,不能進行復制、編輯等修改操作,效果就像圖片一樣,不過也可以設定為區域性只讀。

目前,主流的excel檔案目前也分兩種xls和xlsx(cvs啥的暫時不談)。
經過簡單瞭解發現,xls存的是以二進位制形式儲存的位元組流,xlsx是壓縮包中存放的xml檔案,相信做過word excel匯入匯出或者文件轉換的童鞋應該有所瞭解。
於是我的思路就是從xlsx入手。

開始

首先把xls檔案另存為xlsx格式檔案,然後解壓縮(或者直接用壓縮工具軟體開啟),這時候便可以檢視xlsx檔案中的各個xml配置檔案的資訊了,這時,我們還不知道工作簿的加密資訊在哪個配置檔案中。於是想了個簡單地辦法:建立一個新的xlsx檔案,然後複製一份,對copied檔案進行工作簿加密。加密設定儘可能簡單,這裡只是為了定位加密的配置資訊的位置,防止設定過於複雜導致密碼隱藏太深。

接下來將新建的檔案和加密過得檔案分別解壓,得到xml檔案。
再用文字對比工具對兩個解壓目錄下的相同檔案進行對比,最終對比結果發現,除了修改時間的配置檔案有區別外,還有一個檔案是有區別的,路徑為
xxx.xlsx/xl/worksheets/sheet1.xml
這兩個檔案中有區別的地方為

<sheetProtection password="CF66" sheet="1" objects="1" scenarios="1"/>

這裡寫圖片描述
如圖所示,emp由新建的空檔案解壓,pwd由加密的檔案解壓,最終比對結果可知加密的檔案中比未加密的檔案多出了上述配置。

於是我嘗試將該行刪去並儲存,最後將這個刪除掉加密資訊的檔案sheet1.xml替換到原來的xlsx檔案中相應位置,這時再用office開啟,驚喜的發現工作簿的鎖定已經沒有了。

#結束#
雖然事辦完了而且也不復雜,高興至於順便吐槽一下,這樣的簡單加密會不會對excel的保護太差了點?以後如果真的需要加密還是儘量不用這種方式了為好。還是用轉換工具轉為圖片比較好,再適當加上水印以降低ocr的識別率。