Normas del foro

Curso Hacker
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación? - Noviembre 18, 2008, 09:47:31
Inicio Ayuda Ingresar Registrarse
Visita: Articulos - Juegos Gratis - Da Foros

Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: CESAR METOD ENCRYPT/DECRYPT 0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: CESAR METOD ENCRYPT/DECRYPT  (Leído 51 veces)
nax_hh
Miembro
*****
Desconectado Desconectado

Mensajes: 119


Search Read Search Read ....


Ver Perfil
« en: Noviembre 07, 2008, 01:42:25 »

CESAR METOD ENCRYPT/DECRYPT (o CMED)

es un programa que encripta y decripta texto utilizando el metodo que
utilizava el cesar (usar wikipedia xD)

Tiene la posibilidad de encryptar desde texto expuesto en la cmd o desde
un archivo.

PD: En caso de que sea de un archivo, el texto ha de estar en la misma linea
(mas adelante miraré de resolver eso...)

Creo que el code me a quedad muy extenso... así que para la proxima version
lo simplificaré con un par de FOR.... ya tengo la idea de como hacerlo
pero e estado ocupado aprendiendo VB...

ASí que os dejo esta version....


IMÁGENES:







El code del archivo menu.bat no lo pongo porque no es nada del otro mundo
así y todo si quereis los .bat en %temp% están todos.

encrypter.bat

Código:
  @echo off
REM Encrypter.bat es parte de CMED.exe
REM This file encrypt the text write in CMD and show it.
REM Coded By Nax

:ini
cls
set fin=
set decod=
set cesar=
set metod=
set codi=

echo.
echo              ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo              ³      Encriptar     ³
echo              ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo.
echo                    Texto: Texto a encriptar
echo                    Metodo: Ejemplo:+1*2
set /p codi=Texto ^>^>
if not defined codi goto :ini
set /p metod=Metodo ^>^>
if not defined metod goto :ini

call :codificar %codi%
call :len %c%
call :separando

:text
cls
echo.
echo              ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo              ³      Encriptar     ³
echo              ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo  þ Texto original:
echo    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo  %codi%
echo.
echo  þ Texto codificado:
echo    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo  %fin%
echo.
echo Si quieres guardarlo en un archivo escribe
echo el nombre de este, sino,escribe n.
echo.
set /p archiv=^>^>
if not defined archiv (goto :text)
if /i %archiv%==n (goto :cont)
echo %fin%>>%archiv%.txt
:cont
set otr=
set /p otr=Volver a encriptar? (s/n)
if not defined otr (goto :ini)
if /i %otr%==s (goto :ini)
menu.bat
exit


:separando
rem Cojemos los 2 caracteres de cada letra.

set /a len=%len%-2
for /l %%a in (0,2,%len%) do (call :set %%a
)
goto :eof


:set
rem Agregamos %%a char y char especifica a partir de que caracter
rem cojemos numero

set char=%~1
call set d=%%c:~%char%,2%%
call :cesar %d%
goto :eof


:cesar
rem Aplica el metodo del cesar a 2 caracteres (que es una letra)

set e=%~1
set /a aplicar=%e%%metod%

rem Recuerdo que el ultimo numero posible es 36 y el primero 10...
rem en caso de hacer 36+1 deveria dar =10 que es lo que hacen estos 2 if

if %aplicar% GTR 36 (call :mayor)
if %aplicar% LSS 10 (call :menor)
call :code %aplicar%
goto :eof

:mayor
set /a dif=%aplicar%-36
set /a aplicar=9+%dif%
call :comprobar
goto :eof

:menor
set /a dif=10-%aplicar%
set /a aplicar=37-%dif%
call :comprobar
goto :eof

:comprobar
rem Comprovamos que aplicar no sea mayor ni menor que 36 y 10 respectivamente
rem despues de haverlo echo en :cesar

if %aplicar% GTR 36 (call :mayor)
if %aplicar% LSS 10 (call :menor)
goto :eof

:codificar
rem Codificando el texto

set c=%*
set c=%c: =10%
set c=%c:a=11%
set c=%c:b=12%
set c=%c:c=13%
set c=%c:d=14%
set c=%c:e=15%
set c=%c:f=16%
set c=%c:g=17%
set c=%c:h=18%
set c=%c:i=19%
set c=%c:j=20%
set c=%c:k=21%
set c=%c:l=22%
set c=%c:m=23%
set c=%c:n=24%
set c=%c:o=25%
set c=%c:p=26%
set c=%c:q=27%
set c=%c:r=28%
set c=%c:s=29%
set c=%c:t=30%
set c=%c:u=31%
set c=%c:v=32%
set c=%c:w=33%
set c=%c:x=34%
set c=%c:y=35%
set c=%c:z=36%
goto :eof


:code
rem Cojemos los 2 caracteres con el metodo cesar aplicado y lo
rem decodificamos segun su valor... si era a+1, a sera b...

set g=%*
set g=%g:10= %
set g=%g:11=a%
set g=%g:12=b%
set g=%g:13=c%
set g=%g:14=d%
set g=%g:15=e%
set g=%g:16=f%
set g=%g:17=g%
set g=%g:18=h%
set g=%g:19=i%
set g=%g:20=j%
set g=%g:21=k%
set g=%g:22=l%
set g=%g:23=m%
set g=%g:24=n%
set g=%g:25=o%
set g=%g:26=p%
set g=%g:27=q%
set g=%g:28=r%
set g=%g:29=s%
set g=%g:30=t%
set g=%g:31=u%
set g=%g:32=v%
set g=%g:33=w%
set g=%g:34=x%
set g=%g:35=y%
set g=%g:36=z%
set fin=%fin%%g%
goto :eof


:len
rem Establecemos la longitud By TheShadow
set w=%1
set a=0
set bol=0
:lp
call :cnt "%%w:~%a%,1%%" %a%
if %bol%==1 goto :EOF
set /a a=%a%+1
goto lp
:cnt
set cur=%1
set len=%2
if %cur%a==""a (
set bol=1
)
goto :EOF


encryptertext.bat

Código:
  @echo off
REM Encrypter.bat es parte de CMED.exe
REM This file encrypt the text write in CMD and show it.
REM Coded By Nax

:ini
cls
set fin=
set decod=
set cesar=
set metod=
set codi=

echo.
echo              ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo              ³      Encriptar     ³
echo              ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo.
echo                    Archivo: Archivo a Codificar
echo                              (sin extencion)
echo                    Metodo: Ejemplo:+1*2
set /p codi=Archivo ^>^>
if not defined codi goto :ini
set /p metod=Metodo ^>^>
if not defined metod goto :ini



for /f "eol=; tokens=*" %%a in (%codi%.txt) do (set var=%%a)
call :codificar %var%
call :len %c%
call :separando


:text
cls
echo.
echo              ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo              ³      Encriptar     ³
echo              ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
echo  þ Texto original:
echo    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo  %var%
echo.
echo  þ Texto codificado:
echo    ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
echo  %fin%
echo.
echo Si quieres guardarlo en un archivo escribe el nombre de este
echo sino,escribe n.
echo.
set /p archiv=^>^>
if not defined archiv (goto :text)
if /i %archiv%==n (goto :cont)
echo %fin%>>%archiv%.txt
:cont
set otr=
set /p otr=Volver a encriptar? (s/n)
if not defined otr (goto :ini)
if /i %otr%==s (goto :ini)
menu.bat
exit


:separando
rem Cojemos los 2 caracteres de cada letra.

set /a len=%len%-2
for /l %%a in (0,2,%len%) do (call :set %%a
)
goto :eof


:set
rem Agregamos %%a char y char especifica a partir de que caracter
rem cojemos numero

set char=%~1
call set d=%%c:~%char%,2%%
call :cesar %d%
goto :eof


:cesar
rem Aplica el metodo del cesar a 2 caracteres (que es una letra)

set e=%~1
set /a aplicar=%e%%metod%

rem Recuerdo que el ultimo numero posible es 36 y el primero 10...
rem en caso de hacer 36+1 deveria dar =10 que es lo que hacen estos 2 if

if %aplicar% GTR 36 (call :mayor)
if %aplicar% LSS 10 (call :menor)
call :code %aplicar%
goto :eof

:mayor
set /a dif=%aplicar%-36
set /a aplicar=9+%dif%
call :comprobar
goto :eof

:menor
set /a dif=10-%aplicar%
set /a aplicar=37-%dif%
call :comprobar
goto :eof

:comprobar
rem Comprovamos que aplicar no sea mayor ni menor que 36 y 10 respectivamente
rem despues de haverlo echo en :cesar

if %aplicar% GTR 36 (call :mayor)
if %aplicar% LSS 10 (call :menor)
goto :eof

:codificar
rem Codificando el texto

set c=%*
set c=%c: =10%
set c=%c:a=11%
set c=%c:b=12%
set c=%c:c=13%
set c=%c:d=14%
set c=%c:e=15%
set c=%c:f=16%
set c=%c:g=17%
set c=%c:h=18%
set c=%c:i=19%
set c=%c:j=20%
set c=%c:k=21%
set c=%c:l=22%
set c=%c:m=23%
set c=%c:n=24%
set c=%c:o=25%
set c=%c:p=26%
set c=%c:q=27%
set c=%c:r=28%
set c=%c:s=29%
set c=%c:t=30%
set c=%c:u=31%
set c=%c:v=32%
set c=%c:w=33%
set c=%c:x=34%
set c=%c:y=35%
set c=%c:z=36%
goto :eof


:code
rem Cojemos los 2 caracteres con el metodo cesar aplicado y lo
rem decodificamos segun su valor... si era a+1, a sera b...

set g=%*
set g=%g:10= %
set g=%g:11=a%
set g=%g:12=b%
set g=%g:13=c%
set g=%g:14=d%
set g=%g:15=e%
set g=%g:16=f%
set g=%g:17=g%
set g=%g:18=h%
set g=%g:19=i%
set g=%g:20=j%
set g=%g:21=k%
set g=%g:22=l%
set g=%g:23=m%
set g=%g:24=n%
set g=%g:25=o%
set g=%g:26=p%
set g=%g:27=q%
set g=%g:28=r%
set g=%g:29=s%
set g=%g:30=t%
set g=%g:31=u%
set g=%g:32=v%
set g=%g:33=w%
set g=%g:34=x%
set g=%g:35=y%
set g=%g:36=z%
set fin=%fin%%g%
goto :eof


:len
rem Establecemos la longitud By TheShadow
set w=%1
set a=0
set bol=0
:lp
call :cnt "%%w:~%a%,1%%" %a%
if %bol%==1 goto :EOF
set /a a=%a%+1
goto lp
:cnt
set cur=%1
set len=%2
if %cur%a==""a (
set bol=1
)
goto :EOF


Creo que es innecesario tener 2 archivos... para la proxima version
lo modificaré para que sea todo en un único archivo.

Os recomiendo bajar el .exe para tenerlo ya todo...


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
DESCARGAR CMED.EXE


Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion
Si no va aqui sta el index...



Creo que no me dejo nada...

Salu2
Nax

EDIT: e cambiado el cmed.exe por cmed.rar pero el link directo sigue sin funcionarme...
si eso mirad en el index y esta en .rar y .exe

salu2
nax
« Última modificación: Noviembre 07, 2008, 03:01:33 por nax_hh » En línea
sami
Colaborador
*****
Desconectado Desconectado

Mensajes: 419



Ver Perfil Email
« Respuesta #1 en: Noviembre 07, 2008, 04:09:42 »

a ver, la metodologia que usas no es buena. el metodo cesar solo necesita el texto y un argumento de entrada para cifrado y ese argumento es un numero del 0 al 26, no se pq lo has puesto del 10 al 36.
Por otra parte, deberia estar permitido realmente cualquier numero, incluso negativo para el cifrado cesar. para operar con numeros mayores de 26 se usa la reduccion modular.

como idea esta bien pero creo que te has ido por las ramas. tal vez este programa se pueda hacer en unas 20 lineas.
En línea
nax_hh
Miembro
*****
Desconectado Desconectado

Mensajes: 119


Search Read Search Read ....


Ver Perfil
« Respuesta #2 en: Noviembre 07, 2008, 05:14:04 »

ya dije que se podia hacer mas corto y que lo haria mas adelante.... Roll Eyes

PD: si me fui por las ramas en algunos sitios... pero no tengo tiempo para revisarlo... por lo que opte ponerlo asi..

por otra parte lo de 10 a 36 es porque el for coje de 2 en 2 caracteres
si a=1 y b=2 el for cojeria 12 y traduciria : L...
entonces 11=a 12=b

el metodo permite restar... yo no e dicho que no
y tambien dividir.

Y varias operaciones a la vez... como *2+3/2 (aunque no e probado los parentesis pero no deveria haber problema...)

si necesitais alguna explicacion mas encantado de contestar

salu2
nax
En línea
:. Soldier .:
Game Over
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 1052


I'm Jarvis


Ver Perfil WWW Email
« Respuesta #3 en: Noviembre 07, 2008, 08:52:33 »

Se me muy bueno man, voy a probarlo para ver que tal esta  Wink

Saludos
En línea


Visita mi Blog: ↓

Necesitas ser usuario para ver los enlaces Crear Usuario  Hacer Sesion

:: SmartGenius™ ::
[Splendit Smart]
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 2420


Campusero... :P

smartgenius@el-hacker.org
Ver Perfil WWW
« Respuesta #4 en: Noviembre 09, 2008, 12:05:10 »

jeje...ya estaba yo trabajando en un encriptador pero con un metodo un pooc mas fuerte que el cifrado cesar.....ya publico algo d elo que llevo...

Saludos.
En línea



y0u-uNsEcUre
Moderación
Gran Colaborador
*****
Desconectado Desconectado

Mensajes: 3527


E.0.F


Ver Perfil Email
« Respuesta #5 en: Noviembre 09, 2008, 12:12:25 »

lo interesante seria crear algo para sustituir palabras por variables Roll Eyes

pero esta muy bueno de todas formas nax_hh , te aseguro que un script de este tipo, tiene mucho uso Wink


saludos
« Última modificación: Noviembre 09, 2008, 12:13:24 por [ e0f ] d0rknet » En línea

Páginas: [1] Ir Arriba Imprimir 
Comunidad Underground Hispana  |  Programacion  |  Programación  |  Batch (Moderadores: Espectro Infernal, |Shadow|)  |  Tema: CESAR METOD ENCRYPT/DECRYPT « anterior próximo »
Ir a:  


Ranking-Hits
Powered by SMF 1.1.7 | SMF © 2006-2007, Simple Machines LLC