DEMIAN_ABRAXAS

Encriptador

May 1st, 2019
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 3.39 KB | None | 0 0
  1. @echo off
  2.  
  3. REM Segadorfelix DEMIAN_ABRAXAS
  4. REM Recomendable para archivos pequeños, menores a 10 MB.
  5. REM Se recomienda este tamaño, porque el "archivo en hexadecimal" pesa tres veces más que el original.
  6. REM Y la velocidad media de encriptado es de 1 KB cada 1,5 segundos.
  7. REM Tamaño maximo de uso 30MB, aunque tarda bastante con este tamaño-
  8.  
  9. setlocal ENABLEDELAYEDEXPANSION
  10.  
  11. REM Inicializando variables iterativas.
  12. set /a niu=0
  13. set /a coun=0
  14. set "dfg="
  15.  
  16. REM Cuerpo del archivo.
  17. :princ
  18. echo.
  19. set /P "opicx=Encriptar(1), Desencriptar(2)?: "
  20. echo.
  21. IF %opicx%==1 (call :codif) else (
  22. IF %opicx%==2 (call :Decodif) else (
  23. goto:EOF
  24. )
  25. )
  26. call :clasea
  27. IF exist "%arcrip%" (certutil -f -encodehex "%arcrip%" "%arcrip%.hex" 8) else (
  28. goto princ
  29. )
  30. color 1A>"%arcrip%_crip.hex"
  31. IF %opicx%==1 (
  32. call :criper
  33. certutil -f -decodehex "%arcrip%_crip.hex" "%arcrip%_crip.dll"
  34. echo.
  35. echo Archivo encriptado: %arcrip%_crip.dll
  36. echo.
  37. )
  38. IF %opicx%==2 (
  39. call :decriper
  40. certutil -f -decodehex "%arcrip%_crip.hex" "%arcrip%_decrip.dll"
  41. echo.
  42. echo Archivo desencriptado: %arcrip%_decrip.dll
  43. echo Recuerde cambiar el nombre del archivo .dll a su nombre original, junto su extension correspondiente.
  44. echo.
  45. )
  46. del /F "%arcrip%.hex"
  47. del /F "%arcrip%_crip.hex"
  48. goto:EOF
  49.  
  50. REM Petición de archivo a encriptar.
  51. :codif
  52. echo.
  53. set /P "arcrip=Nombre del archivo a encriptar: "
  54. echo.
  55. goto:EOF
  56.  
  57. REM Recorre linea a linea y ofusca el archivo en hexadecimal.
  58. :criper
  59. FOR /F "usebackq tokens=*" %%_ IN ("%arcrip%.hex") DO (
  60. call :oscu %%_
  61. )
  62. goto:EOF
  63.  
  64. REM Petición de archivo a desencriptar.
  65. :Decodif
  66. echo.
  67. set /P "arcrip=Nombre del archivo a desencriptar: "
  68. echo.
  69. goto:EOF
  70.  
  71. REM Recorre linea a linea y desofusca el archivo en hexadecimal.
  72. :decriper
  73. FOR /F "usebackq tokens=*" %%_ IN ("%arcrip%.hex") DO (
  74. call :aclar %%_
  75. )
  76. goto:EOF
  77.  
  78. REM Petición de contraseña y conversión a hexadecimal.
  79. :clasea
  80. echo [Caracteres validos: A-Z, a-z, 0-9, @, #, :, ;, ?, $, +, -, _]
  81. set /P "contrat=Escriba contraseña: "
  82. echo %contrat%>sea.dat
  83. certutil -f -encodehex sea.dat sea_hex.dat 8
  84. del /F sea.dat
  85. FOR /F "tokens=*" %%w IN  (sea_hex.dat) DO (set "dfg=!dfg! %%w")
  86. del sea_hex.dat
  87. for %%z IN (!dfg!) DO (
  88. set /a coun+=1
  89. )
  90. set /a coun+=1
  91. goto:EOF
  92.  
  93. REM Variación del Cifrado César. Cifrado de Vigenère
  94. REM Suma.
  95. :oscu
  96. IF "%*"=="" goto:EOF
  97. set /a niu+=1
  98. set "cof="
  99. FOR /F "tokens=%niu%" %%$ IN ("%dfg%") DO (set moder=%%$)
  100. set /a niu%%=!coun!
  101. for %%k IN (%*) DO (
  102. set /a jkl=0x%%k+0x!moder!
  103. set /a jkl%%=256
  104. call :hexx !jkl!
  105. set "cof=!cof! !jkl!"
  106. )
  107. echo %cof%>>"%arcrip%_crip.hex"
  108. goto:EOF
  109.  
  110. REM Variación del Cifrado César. Cifrado de Vigenère
  111. REM Resta.
  112. :aclar
  113. IF "%*"=="" goto:EOF
  114. set /a niu+=1
  115. set "cof="
  116. FOR /F "tokens=%niu%" %%$ IN ("%dfg%") DO (set moder=%%$)
  117. set /a niu%%=!coun!
  118. for %%k IN (%*) DO (
  119. set /a jkl=0x%%k-0x!moder!
  120. set /a jkl%%=256
  121. IF !jkl! LSS 0 set /a jkl=256+!jkl!
  122. call :hexx !jkl!
  123. set "cof=!cof! !jkl!"
  124. )
  125. echo %cof%>>"%arcrip%_crip.hex"
  126. goto:EOF
  127.  
  128. REM Conversor de decimal a hexadecimal.
  129. :hexx
  130. set /a ab=%1/16
  131. set /a zj=%1%%16
  132. IF %ab% GEQ 10 (
  133. IF %ab%==10 set ab=a
  134. IF %ab%==11 set ab=b
  135. IF %ab%==12 set ab=c
  136. IF %ab%==13 set ab=d
  137. IF %ab%==14 set ab=e
  138. IF %ab%==15 set ab=f
  139. )
  140. IF %zj% GEQ 10 (
  141. IF %zj%==10 set zj=a
  142. IF %zj%==11 set zj=b
  143. IF %zj%==12 set zj=c
  144. IF %zj%==13 set zj=d
  145. IF %zj%==14 set zj=e
  146. IF %zj%==15 set zj=f
  147. )
  148. set jkl=!ab!!zj!
  149. goto:EOF
Advertisement
Add Comment
Please, Sign In to add comment