Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- REM Segadorfelix DEMIAN_ABRAXAS
- REM Recomendable para archivos pequeños, menores a 10 MB.
- REM Se recomienda este tamaño, porque el "archivo en hexadecimal" pesa tres veces más que el original.
- REM Y la velocidad media de encriptado es de 1 KB cada 1,5 segundos.
- REM Tamaño maximo de uso 30MB, aunque tarda bastante con este tamaño-
- setlocal ENABLEDELAYEDEXPANSION
- REM Inicializando variables iterativas.
- set /a niu=0
- set /a coun=0
- set "dfg="
- REM Cuerpo del archivo.
- :princ
- echo.
- set /P "opicx=Encriptar(1), Desencriptar(2)?: "
- echo.
- IF %opicx%==1 (call :codif) else (
- IF %opicx%==2 (call :Decodif) else (
- goto:EOF
- )
- )
- call :clasea
- IF exist "%arcrip%" (certutil -f -encodehex "%arcrip%" "%arcrip%.hex" 8) else (
- goto princ
- )
- color 1A>"%arcrip%_crip.hex"
- IF %opicx%==1 (
- call :criper
- certutil -f -decodehex "%arcrip%_crip.hex" "%arcrip%_crip.dll"
- echo.
- echo Archivo encriptado: %arcrip%_crip.dll
- echo.
- )
- IF %opicx%==2 (
- call :decriper
- certutil -f -decodehex "%arcrip%_crip.hex" "%arcrip%_decrip.dll"
- echo.
- echo Archivo desencriptado: %arcrip%_decrip.dll
- echo Recuerde cambiar el nombre del archivo .dll a su nombre original, junto su extension correspondiente.
- echo.
- )
- del /F "%arcrip%.hex"
- del /F "%arcrip%_crip.hex"
- goto:EOF
- REM Petición de archivo a encriptar.
- :codif
- echo.
- set /P "arcrip=Nombre del archivo a encriptar: "
- echo.
- goto:EOF
- REM Recorre linea a linea y ofusca el archivo en hexadecimal.
- :criper
- FOR /F "usebackq tokens=*" %%_ IN ("%arcrip%.hex") DO (
- call :oscu %%_
- )
- goto:EOF
- REM Petición de archivo a desencriptar.
- :Decodif
- echo.
- set /P "arcrip=Nombre del archivo a desencriptar: "
- echo.
- goto:EOF
- REM Recorre linea a linea y desofusca el archivo en hexadecimal.
- :decriper
- FOR /F "usebackq tokens=*" %%_ IN ("%arcrip%.hex") DO (
- call :aclar %%_
- )
- goto:EOF
- REM Petición de contraseña y conversión a hexadecimal.
- :clasea
- echo [Caracteres validos: A-Z, a-z, 0-9, @, #, :, ;, ?, $, +, -, _]
- set /P "contrat=Escriba contraseña: "
- echo %contrat%>sea.dat
- certutil -f -encodehex sea.dat sea_hex.dat 8
- del /F sea.dat
- FOR /F "tokens=*" %%w IN (sea_hex.dat) DO (set "dfg=!dfg! %%w")
- del sea_hex.dat
- for %%z IN (!dfg!) DO (
- set /a coun+=1
- )
- set /a coun+=1
- goto:EOF
- REM Variación del Cifrado César. Cifrado de Vigenère
- REM Suma.
- :oscu
- IF "%*"=="" goto:EOF
- set /a niu+=1
- set "cof="
- FOR /F "tokens=%niu%" %%$ IN ("%dfg%") DO (set moder=%%$)
- set /a niu%%=!coun!
- for %%k IN (%*) DO (
- set /a jkl=0x%%k+0x!moder!
- set /a jkl%%=256
- call :hexx !jkl!
- set "cof=!cof! !jkl!"
- )
- echo %cof%>>"%arcrip%_crip.hex"
- goto:EOF
- REM Variación del Cifrado César. Cifrado de Vigenère
- REM Resta.
- :aclar
- IF "%*"=="" goto:EOF
- set /a niu+=1
- set "cof="
- FOR /F "tokens=%niu%" %%$ IN ("%dfg%") DO (set moder=%%$)
- set /a niu%%=!coun!
- for %%k IN (%*) DO (
- set /a jkl=0x%%k-0x!moder!
- set /a jkl%%=256
- IF !jkl! LSS 0 set /a jkl=256+!jkl!
- call :hexx !jkl!
- set "cof=!cof! !jkl!"
- )
- echo %cof%>>"%arcrip%_crip.hex"
- goto:EOF
- REM Conversor de decimal a hexadecimal.
- :hexx
- set /a ab=%1/16
- set /a zj=%1%%16
- IF %ab% GEQ 10 (
- IF %ab%==10 set ab=a
- IF %ab%==11 set ab=b
- IF %ab%==12 set ab=c
- IF %ab%==13 set ab=d
- IF %ab%==14 set ab=e
- IF %ab%==15 set ab=f
- )
- IF %zj% GEQ 10 (
- IF %zj%==10 set zj=a
- IF %zj%==11 set zj=b
- IF %zj%==12 set zj=c
- IF %zj%==13 set zj=d
- IF %zj%==14 set zj=e
- IF %zj%==15 set zj=f
- )
- set jkl=!ab!!zj!
- goto:EOF
Advertisement
Add Comment
Please, Sign In to add comment