Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off&setlocal enabledelayedexpansion&chcp 65001>nul&goto x
- :e.2
- if %ecx% GTR %cl% goto ei
- set "ec=%ea:~0,1%"&set /a ecx+=1
- if "%ec%"=="%es%" goto e%m%
- set "ea=%ea:~1%"&goto e.2
- :e0
- set /a enx=((%ecx%+%k%+%em%)%%%cl%+%cl%)%%%cl%
- set /a em+=((%ecx%-%k%)%%%cl%+%cl%)%%%cl%
- goto e.3
- :e1
- set /a enx=(((%ecx%-%k%-2-%em%)%%%cl%+%cl%)%%%cl%)-1
- set /a em+=((%enx%-%k%+1)%%%cl%+%cl%)%%%cl%
- goto e.3
- :e.1
- if not defined ei_ goto e.e
- set "es=%ei_:~0,1%"&set ecx=0
- set /a p+=1
- set /a _p=%p%*100/%ilen%
- title Processing... %_p%%%
- goto e.2
- :e.3
- set "en=!c:~%enx%,1!"
- set "eo=%eo%%en%"&set "ei_=%ei_:~1%"&set "ea=%c%"&goto e.1
- :x
- set m=0
- set "mc=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/="&call :l "!mc!"&set cl=!il!
- set /a r_cl=!cl!-1
- set r_n=0&for /l %%A in (1,1,%r_cl%) do set "r_n=!r_n!, %%A"
- :k
- cls&set /p "k=Numerical key> "&if !k! EQU +!k! (if !k! LEQ 2147483333 (call :r "!k!"&goto m) else (echo Invalid key&timeout /t 2 >nul&goto k)) else (echo Invalid key.&timeout /t 2 >nul&goto k)
- :m
- title Cipher tool 3.0 - %USERNAME% Edition&cls&echo.&echo Your key: !k!&echo.&echo. /k ^<key^> to change key&echo.&set /p i="Message> "&if "!i:~0,3!"=="/k " (set "tk=!i:~3!"&if !tk! EQU +!tk! (if !tk! LEQ 2147483333 (call :r "!tk!"&set k=!tk!) else (echo Invalid key&timeout /t 2 >nul)) else (echo Invalid key&timeout /t 2 >nul))&goto m
- if "!i!"=="" goto m
- if "!i:~0,4!"=="_MCD" (set "i=!i:~4!"&if !m!==0 call :a) else if !m!==1 call :a
- if !m!==0 call :d0
- call :l "!i!"&set ilen=!il!
- echo.&call :e "!i!"&goto m
- :e
- setlocal
- set "ei=%~1"&set "ei_=%~1"&if !m!==0 (set em=3) else set em=2
- set "ea=!c!"&goto e.1
- :e.e
- if !m!==1 call :d1
- if !m!==0 (if "!eo!"=="" (echo ERROR) else echo._MCD!eo!
- <nul set /p _="```_MCD!eo!```"|clip&pause>nul) else if "!eo!"=="" (echo ERROR) else echo.!eo!&pause>nul
- endlocal&goto :eof
- :l
- set "l_i=%~1"&set il=0
- goto z
- :z
- if not defined l_i goto :eof
- set /a il+=1
- set "l_i=!l_i:~0,-1!"&goto z
- :a
- if !m!==0 (set m=1) else set m=0
- goto :eof
- :r
- set "c="&for /f "usebackq tokens=*" %%A in (`powershell -command "%r_n% | get-random -count %cl% -setseed %~1"`) do set "c=!c!!mc:~%%A,1!"
- call :l "!c!"&if !il! LSS !cl! echo.INVALID SHUFFLE:&echo.c ^(!cl!^) = !c!&echo.mc ^(!il!^) = !mc!&pause>nul&exit
- goto :eof
- :ei
- echo ERROR: CHARACTER INDEX OUT OF RANGE ^(!es!^).&pause>nul&endlocal&goto :eof
- :d0
- set ds=!i:"=\`"!
- set ds=!ds:'=''!
- set ds=!ds:+=\+!
- set "ps=powershell -command "$b = [System.Text.Encoding]::UTF8.GetBytes('!ds!'); ^
- [System.Convert]::ToBase64String($b)""
- for /f "usebackq tokens=*" %%A in (`%ps%`) do set "i=%%A"
- goto :eof
- :d1
- set "ps=powershell -command "$b = [System.Convert]::FromBase64String('!eo!'); ^
- [System.Text.Encoding]::UTF8.GetString($b)""
- for /f "usebackq tokens=*" %%A in (`%ps%`) do set "eo=%%A"
- set eo=!eo:\`="!
- set eo=!eo:\+=+!
- goto :eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement