cmd實現檔案的base64加密並雙擊加密檔案後正常執行
阿新 • • 發佈:2018-12-27
之前,一個朋友讓我用cmd做個簡單的文件加密(base64),對於不太懂電腦的人來說看不懂就行。但是當那個人點選加密後的檔案可以正常執行,問咋寫?
其實,像這種要求不高的加密來說,隨便下載個加密軟體就好。但是對加密後的檔案直接雙擊就可以和原始檔那樣直接執行就很少了。
這裡我們用到的是windows自帶的certutil命令,有關其命令的詳解,大家直接執行certutil /? 就可以檢視。
以下是我寫的bat檔案:
其中:
1.readme.txt 說明文件
使用說明: 1.將你要加密的檔案複製到Material資料夾下,如果沒有Material可以自己新建2.雙擊ClickToEncodeFiles.bat檔案,加密Material資料夾下的檔案 3.開啟encodeFiles資料夾,其中就是加密後的檔案 注意: 1.加密的檔名不能有空格 2.每次會輸出加密的結果注意檢視。
2.ClickToEncodeFiles.bat 執行文件
@echo off chcp 936 if not "%OS%"=="Windows_NT" exit title EncodeFiles color 0a more readme.txt pause chcp 65001>nul setlocal EnableDelayedExpansionrem 建立需要的資料夾 REM if not exist decodeFiles mkdir decodeFiles if not exist encodeFiles mkdir encodeFiles if not exist Material ( mkdir Material echo Please put the files which you want to encrypt in the "Material" folder of the current directory. pause exit ) REM Encrypt Files in the "Material" folder of the current directoryecho Please ensure your encrypt files in Material folder . echo= set finallyPath=-1 for /F "tokens=1 delims=/" %%i in ('dir /b /on Material') do ( echo Start encode %%i set finallyPath=".\encodeFiles\%%i.bat" REM echo !finallyPath! rem decode code echo @echo off > !finallyPath! echo certutil -f -decode "%%0" %%temp%%\%%i ^>nul >>!finallyPath! echo start %%temp%%\%%i>>!finallyPath! REM echo pause >>!finallyPath! echo exit >>!finallyPath! echo= >>!finallyPath! certutil -F -encode ".\Material\%%i" "%temp%\%%i.txt" | find "FAILED" >nul && ( echo %%i encode defeated ^!^!^!^! & echo= )|| ( echo %%i encode passed & echo= ) more "%temp%\%%i.txt" >>!finallyPath! if exist "%temp%\%%i.txt" del "%temp%\%%i.txt" ) start .\encodeFiles\ pause exit
3.Material 中是要加密的檔案
4.encodeFiles 是加密完成後的檔案,雙擊可執行
下載地址:
https://github.com/feiquan123/encodeFiles/