日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell实现加密压缩文件自动解压

發布時間:2023/12/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell实现加密压缩文件自动解压 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自動化批量解壓縮加密文件腳本


1. 軟件功能介紹

  • 支持壓縮格式:zip、rar、gzip、bzip(挖個坑,后續計劃加入7z)
  • 運行過程:自動讀取目錄下所有支持的壓縮格式進行自動解壓縮
  • 從文件文本讀取密碼,自動遍歷密碼解壓縮
  • 自動部署安裝解壓縮所需要的軟件和環境
  • 2.運行結果展示

    • 當前目錄的壓縮文件

    • 腳本執行結果


    ??解壓出來的文件保存在對應類型的文件夾下??\color{#FF3030}**解壓出來的文件保存在對應類型的文件夾下**??解壓出來的文件保存在對應類型的文件夾下??

    • rar > rar_result
    • zip > zip_result
    • bzip > bzip_result
    • gzip > gzip_result

    3. 實現代碼

    #!/bin/bash#初始化變量 RID=0 #ROOT賬戶ID pwd=$PWD #保存當前路徑 key_db=$1 #初始化秘鑰文件 E_ERROR=65 #錯誤退出碼 Num=1#檢測運行賬號 if [ $UDI -ne "$RID" ];thenecho "請使用root賬號運行" && exit E_ERROR fi#傳參檢測 if [ $# -ne 1 ] then echo -e "Usage:$0 password_file "exit E_ERROR fi#清屏 clear #打印腳本介紹信息 cat <<EOF####################################################################### ================================================================== ## 《 Welcome to the automated decryption and decompression script 》 ## ================================================================== ## 1.Author:Cosann ## 2.Create Time:20220804 ## 3.Function:uncompress.sh ## 3.Version:1.0 ## 4.Description:自動化批量解壓縮加密文件(從文本讀取密碼) ## ####################################################################### EOF#打印軟件安轉提示信息 echo -e "\n開始檢查該腳本運行需要的解壓縮環境依賴>>>\n" echo "-------------------------------------"#環境部署及安裝相關解壓軟件 #zip軟件檢測 if [ `rpm -qa | grep -E "^zip.*" &> /dev/null;echo $?` -ne 0 ];thenecho "zip解壓環境正在部署中,請稍等..."yum install -y zip 2&>1 /dev/null || ( echo ">bzip2安裝失敗,請嘗試手動安裝" && exit E_ERROR ) && echo -e ">zip解壓環境已部署!" elseecho -e ">zip解壓環境已部署!" fi#unzip軟件檢測 if [ `rpm -qa | grep -E "^unzip.*" &> /dev/null;echo $?` -ne 0 ];thenecho "unzip解壓環境正在部署中,請稍等..."yum install -y unzip 2&>1 /dev/null || ( echo ">unzip安裝失敗,請嘗試手動安裝" && exit E_ERROR ) && echo -e ">unzip解壓環境已部署!" elseecho -e ">unzip解壓環境已部署!" fi#rar軟件檢測 rar &> /dev/null if ! [ $? -eq 0 ];then#Linux版本判斷,安裝rar-linuxecho "rar解壓環境正在部署中,請稍等...(提示:根據網絡情況,一般最快需要等待1分鐘~)"#檢測OS版本os=`uname -p | awk -F "_" '{print $2}'`#安裝對應版本的rarif [ $os -eq "64" ]thencd /tmp/wget --no-check-certificate https://www.rarlab.com/rar/rarlinux-x64-612.tar.gz &> /dev/nulltar -zxf rarlinux-x64-612.tar.gz &> /dev/nullcd rar &> /dev/null( cp -v rar unrar /usr/local/bin/ &> /dev/null && echo -e ">rar解壓環境已部署!" ) || ( cd $pwd && echo ">rar安裝失敗,請嘗試手動安裝" && exit E_ERROR )#切回原始路徑cd $pwdelif [ $os -eq "32" ]thencd /tmp/wget --no-check-certificate https://www.rarlab.com/rar/rarlinux-x32-612.tar.gz &> /dev/nulltar -zxf rarlinux-x32-612.tar.gz &> /dev/nullcd rar &> /dev/null( cp -v rar unrar /usr/local/bin/ &> /dev/null && echo -e ">rar解壓環境已部署!" ) || ( cd $pwd && echo ">rar安裝失敗,請嘗試手動安裝" && exit E_ERROR )#切回原始路徑cd $pwdfi elseecho -e ">rar解壓環境已部署!" fi#bzip安裝 bzip2 -h &> /dev/null if ! [ $? -eq 0 ];thenecho "bzip解壓環境正在部署中,請稍等..."yum -y install bzip2 2&>1 /dev/null || ( echo ">bzip2安裝失敗,請嘗試手動安裝" && exit E_ERROR ) && echo -e ">bzip解壓環境已部署!" elseecho -e ">bzip解壓環境已部署!" fi echo -e "-------------------------------------\n" echo -e "開始解壓加密文件>>>"#ZIP壓縮文件處理塊 for i in `find . -name "*.zip"` do I="${i#./}"echo "==============================="echo -e "\033[1;32m>>>開始解壓縮[$I]文件>>>\033[0m"echo -e "-------------------------------"cat $key_db | while read key doecho -e "嘗試解壓縮密碼:$key"unzip -q -o -P $key $i -d ./zip_result/ && echo -e "\033[41m已成功解壓$PWD/$I壓縮文件,解壓縮文件存放在rar_result目錄下!!! \033[0m" && breakdone done#RAR壓縮文件處理塊 for i in `find . -name "*.rar"` do I="${i#./}"echo "============================="echo -e "\033[1;32m>>>開始解壓縮[$I]文件>>>\033[0m"echo -e "-----------------------------"cat $key_db | while read key doecho -e "嘗試解壓縮密碼:$key"expect<<-EOF >>result_txtspawn unrar x -r -o+ -p $i ./rar_result/ expect "Enter password*"send "$key\r" expect "Reenter password*"send "$key\r"expect eof EOFcat result_txt | awk 'END{print $NF}' | grep -q OK if [ $? -eq "0" ]then#刪除expect交互結果記錄文件rm -rf result_txtecho -e "\033[41m已成功解壓$PWD/$I壓縮文件,解壓縮文件存放在$PWD/rar_result目錄下!!! \033[0m" && breakfi#刪除expect交互結果記錄文件rm -rf result_txtdone done#GZIP壓縮文件處理塊 for i in `find . -name "*.tar.gz"` do I="${i#./}"echo "============================="echo -e "\033[1;32m>>>開始解壓縮[$I]文件>>>\033[0m"echo -e "-----------------------------"#創建解壓縮目錄if [ ! -d ./gzip_result/ ]thenecho -e "開始創建用于保存解壓縮文件的目錄"mkdir ./gzip_result && echo "gzip_result目錄創建成功"fiwhile read keydoecho -e "嘗試解壓縮密碼:$key"( openssl des3 -d -k $key -salt -in $i 2>/dev/null | tar xzf - -C ./gzip_result/ 2>/dev/null && echo -e "\033[41m已成功解壓$PWD/$I壓縮文件,解壓縮文件存放在$PWD/rar_result目錄下!!! \033[0m") && break done < $key_db done#BZIP壓縮文件處理塊 for i in `find . -name "*.tar.bz2"` do I="${i#./}"echo "============================="echo -e "\033[1;32m>>>開始解壓縮[$I]文件>>>\033[0m"echo -e "-----------------------------"#創建解壓縮目錄if [ ! -d ./bzip_result/ ]thenecho -e "開始創建用于保存解壓縮文件的目錄"mkdir ./bzip_result/ && echo -e "bzip_result目錄創建成功"fi#密碼暴力嘗試while read keydoecho -e "嘗試解壓縮密碼:$key"( openssl des3 -d -k $key -salt -in $i 2>/dev/null | tar xjf - -C ./bzip_result/ 2>/dev/null && echo -e "\033[41m已成功解壓$PWD/$I壓縮文件,解壓縮文件存放在$PWD/rar_result目錄下!!! \033[0m" ) && break done < $key_db doneecho -e "\n腳本執行完畢,感謝使用~" && exit 0

    4. 運行前準備

    • 1. 需要兩個文件,含有以上代碼腳本文件,密碼字典文件

    例:以上shell腳本保存為uncompress.sh的腳本文件,創建一個密碼字典文件為passwd.txt

    • 密碼文件格式
    • 2. 賦予腳本執行權

    • 3. 將腳本文件和密碼放在同一目錄下(建議,使用絕對路徑也可以)

    5. 腳本使用案例

    • 5.1 運行腳本

    • 5.2 腳本自動部署環境

    • 5.3 開始自動解密解壓縮

    • 5.4 腳本執行完畢

    • 5.5 壓縮已解壓縮至對應文件夾里


    以上就是一個簡單的自動解壓縮腳本,歡迎交流學習~

    總結

    以上是生活随笔為你收集整理的shell实现加密压缩文件自动解压的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。